1.对于长度为n的字符串,如果用char数组表示,数组长度应该至少设置为n+1,因为C++字符串以\0结束,就是说会多出一个字符
2.如果用scanf接收字符串,最好使用char数组表示字符串,那么不需要写取地址符,直接写数组的名称也就是它的首地址即可,如:
char name[6];
scanf("%s",name);
3.string的compare(a,b)函数如果a按字典排序顺序大于b,那么返回1,如果小于b,就返回-1
4.C++中char数组转string类型直接等于即可,如:
char a[3]="ab";
string b=a;
5.函数assign()常用在给string类变量赋值,如str3.assign(str1, 2, 3);第二个参数为取的str1的子串的首index,第三个参数为取的子串长度,如str1为“abcde",那么str3则为"cde",使用时需要加上头文件string
6.memset函数用于C++的初始化,有三个参数,第一个是初始化的首地址,第二个是初始化的值,第三个是初始化目标的长度,使用前需要加上头文件string.h,注意C++的string.h和string不同,并不是不运用于命名空间的版本,一些处理函数就包含在里面,注意是string.h
int a[6];
memset(a,0,sizeof(a));
7.cin.getline()用于获取一行字符串,因为有时候需要获取空,cin是不能接收空的,这时候如果是一行那么就可以使用cin.getline(),不过参数只能用char数组,对于string类型,string类型本身也有一个getline的方法,下面提供上述的两种写法代码:
char a[6];
string s;
cin.getline(a,6);
getline(cin,s);
8.对于一些有规律的字符串,可以用scanf来特定存储,例如存储分数,可以写成:
int a,b;
scanf("%d/%d",&a,&b);
9.string转int:
string a="a";
int b=atoi(str.c_str());//c_str()函数返回一个指向正规C字符串的指针常量, 内容与本string串相同.
int 转string:
int a=0;
string str=to_string(a);