字符串
今天再学习了一下字符串,整理下贴出来。
1.字符串常量是双引号括起来的字符序列。
2.一个字符串常量占据的内存字节数是字符串中字符数加1.多出来的那个字符位于字符串的尾部,存放的是字符'\0'。
3.如果字符串常量中包括双引号,则双引号应写为"\"",而"\"字符在字符串中出现时需连写两次,变成"\\"。如:
printf("He said:\"I am a stu\\dent.\"");
He said:"I am a stu\dent"
4.字符串数组的形式和整型数组类似。如:
char szString[10];
5.用scanf输入字符串时用“%s”,但注意,输入字符串中不能有空格,否则被读入的就是空格前面的那部分。如:
char szPrisonName[100];
scanf("%s",szPrisonName);如果输入:Fox River那么szPoisonName中将会存入Fox而不是Fox River。
如果要将用户输入的包含一个甚至多个空格的一整行都当做一个字符串输入到szPoisonName中,那么上述语句应改为:
gets(szPoinsonName);
6.如下语句调用string.h中声明的字符串比较库函数strcmp和标准答案进行比较,如果该函书返回值为0,则说明比较结果一致:
if(strcmp(szPoisinName,"Fox-River")==0)
7.char s="Poison break";
s[0]='t';
s[3]=0;
printf(s);
执行完上述语句后s的内存图为:P o i \0 o n b r e a k \0
语句printf在对字符串进行处理时碰到'\0'就认为字符串结束了,因此输出为:Poi
8.上述说了一维字符数组用来存放字符串。实际上,二维字符串也可以用来存放字符串。如:char szFriends[6][30]={"Joey","Phonebe","Monica","Chandler","Ross","Rache"};
则 printf(szFriends[0]);
会输出:Joey