基本问题2

1:string字符串如何读取带空格的字符串,char型字符串如何读取带空格的字符串

    读取string字符串

int main()

{

    string str1;

    getline(cin,str1);

    cout<<str1<<endl;

    system("pause");

    return 0;

}

    读取char型字符串

int main()

{

    char arr[20];

    cin.getline(arr,19);

    cout<<arr<<endl;

    system("pause");

    return 0;

}

 

注意:使用cin.getline(arr,20),如果前面有输入,需要使用getchar()吸收前面的空格

2:共用体的使用

union u

{

    int k;

    char c;

};

int main()

{

    u u1;

    u1.c='a';

    cout<<u1.c<<endl;

    system("pause");

    return 0;

}

 

3:枚举的使用

#include <iostream>

#include "stdlib.h"

#include <string.h>

#include <string>

#include <cstring>

#include <fstream>

#include <sstream>

#include <math.h>

using namespace std;

 

enum enum1

{

    c1,

    c2

};

 

int main()

{

    enum1 e1=c2;

    cout<<e1<<endl;

    system("pause");

    return 0;

}

 

4:数字和字符的转换(数字5转成字符5,字符7转成数字7)

#include <iostream>

#include "stdlib.h"

#include <string.h>

#include <string>

#include <cstring>

#include <fstream>

#include <sstream>

#include <math.h>

using namespace std;

int main()

{

    int k=5;

    char c=k+48;

    cout<<c<<endl;

 

    char c2='7';

    int k2=c2-48;

    cout<<k2<<endl;

 

    system("pause");

    return 0;

}

5:给指针字符串数组赋值 char *arr[num]=?

#include <iostream>

#include "stdlib.h"

#include <string.h>

#include <string>

#include <cstring>

#include <fstream>

#include <sstream>

#include <math.h>

using namespace std;

const int num=5;

int main()

{

    char *arr[num]={"123","456","789","",""};

    for(int i=0;i<num;i++)

    {

        cout<<arr[i]<<endl;

    }

    system("pause");

    return 0;

}

6:给指针字符串赋值,手动输入和初始化两种方式

手动输入:

#include <iostream>

#include "stdlib.h"

#include <string.h>

#include <string>

#include <cstring>

#include <fstream>

#include <sstream>

#include <math.h>

using namespace std;

 

int main()

{

    char *arr;

    arr=new char[20];

    cin>>arr;

    cout<<arr<<endl;

    delete [] arr;

    system("pause");

    return 0;

}

初始化:

int main()

{

    char *k;

    char arr[5]="123";

    k=arr;

    cout<<k<<endl;

    system("pause");

    return 0;

}

7:字母的大小写转换

string字符串中字母大小写转换

int main()

{

    string str;

    int len;

    int i;

    cin>>str;

    len=str.size();

    for(i=0;i<len;i++)

    {

        str[i]=toupper(str[i]);//小写转大写

        //str[i]=tolower(str[i]);//大写转小写

    }

    cout<<str<<endl;

    system("pause");

    return 0;

}

char型数组大小写转换

int main()

{

    char arr[10];

    cin.getline(arr,9);

    int len=strlen(arr);

    int i;

    for(i=0;i<len;i++)

    {

        arr[i]=toupper(arr[i]);

    }

    cout<<arr<<endl;

    system("pause");

    return 0;

}

 

 

8:判断int型数据输入是否为int

int main()

{

    int i;

    cin>>i;

    if(cin.fail())

    {

        cout<<"input error"<<endl;

    }

    else

    {

        cout<<"yes"<<endl;

    }

    system("pause");

    return 0;

}

 

9:为结构体数组赋值

创建的时候初始化赋值:

struct  struct1

{

    char name[20];

    int level;

};

int main()

{

    struct1 stu[3]={

        {"wucun1",1},

        {"wucun2",2},

        {"wucun3",3}

    };

    cout<<stu[0].name<<"   "<<stu[0].level<<endl;

    cout<<stu[1].name<<"   "<<stu[1].level<<endl;

    cout<<stu[2].name<<"   "<<stu[2].level<<endl;

    system("pause");

    return 0;

}

    创建后初始化赋值

struct  struct1

{

    char name[20];

    int level;

};

int main()

{

    struct1 stu[3];

    strcpy_s(stu[0].name,"wucun1");

    strcpy_s(stu[1].name,"wucun2");

    strcpy_s(stu[2].name,"wucun3");

    stu[0].level=1;

    stu[1].level=2;

    stu[2].level=3;

 

    cout<<stu[0].name<<"   "<<stu[0].level<<endl;

    cout<<stu[1].name<<"   "<<stu[1].level<<endl;

    cout<<stu[2].name<<"   "<<stu[2].level<<endl;

    system("pause");

    return 0;

}

 

10:为结构体指针赋值

为一个结构体指针赋值

struct  struct1

{

    char name[20];

    int level;

};

 

int main()

{

    struct1 *stu;

    //stu=(struct1 *)malloc(sizeof(struct1));   可以使用malloc或new分配内存

    stu=new struct1;

    strcpy_s(stu->name,"wucun1");

    stu->level=1;

    cout<<stu->name<<"   "<<stu->level<<endl;

    delete stu;

    system("pause");

    return 0;

}

为结构体指针数组赋值

struct  struct1

{

    char name[20];

    int level;

};

int main()

{

    struct1 *stu[3];

    stu[0]=new struct1;

    stu[1]=new struct1;

    stu[2]=new struct1;

    strcpy_s(stu[0]->name,"wucun1");

    strcpy_s(stu[1]->name,"wucun2");

    strcpy_s(stu[2]->name,"wucun3");

    stu[0]->level=1;

    stu[1]->level=2;

    stu[2]->level=3;

    cout<<stu[0]->name<<"   "<<stu[0]->level<<endl;

    cout<<stu[1]->name<<"   "<<stu[1]->level<<endl;

    cout<<stu[2]->name<<"   "<<stu[2]->level<<endl;

    delete stu[0];

    system("pause");

    return 0;

}

 

 

11:字符串数字转换

    字符串转数字

int str2num(string s)

{

    int num;

    stringstream ss(s);

    ss>>num;

    return num;

}

int main()

{

    string str1="123";

    int n=str2num(str1);

    cout<<n<<endl;

    system("pause");

    return 0;

}

    数字转字符串

string num2str(double i)

{

    stringstream ss;

    ss<<i;

    return ss.str();

}

int main()

{

    double n;

    cin>>n;

    string str=num2str(n);

    cout<<str<<endl;

    system("pause");

    return 0;

}

 

 

12:string字符串赋值字符数组

int main()

{

    string str1="abcde";

    char arr[10];

    int len=str1.size();

    int i;

    for(i=0;i<len;i++)

    {

        arr[i]=str1[i];

    }

    arr[len]='\0';

    cout<<arr<<endl;

    system("pause");

    return 0;

}

 

 

13:指针数组arr[k],cin赋值后,自动为末尾添加’\0’,所以strlen(arr)不一定等于k

int main()

{

    char arr[10];

    cin.getline(arr,9);

    int len=strlen(arr);

    cout<<len<<endl;

    system("pause");

    return 0;

}

 

posted on 2016-04-21 09:13  W.C  阅读(192)  评论(0编辑  收藏  举报

导航