第十一章
1、有\0才能叫字符串
2、char *m3 & char m3[]
后者m3[]是数组形式,是一个地址常量,不能++m3;
前者m3是一个指针变量,可以++m3;
3、字符串输入
|
停止 |
特点 |
例子 |
特殊用法 |
gets() |
遇到换行符 |
不检查预留空间,宜溢出 |
Gets(name) |
While(gets(name)!=NULL) 检查是否空输入,当没有任何输入时,name不会被输入任何东西 |
fgets() |
遇到换行符或者达到指定最大读取容量 |
|
Fget(name,MAX,stdin) Fegt(写入的变量,最大容量,从哪里写入) |
|
scanf() |
空格、制表符、换行符 |
读取成功时会返回一个整数,就是读取的项目数;或者遇到文件结束时返回一个EOF |
Scanf(“%5s %10s”,name1, name2) |
|
4、字符串输出
|
例子 |
特点 |
puts |
puts(str1) |
单行显示,自动在字符串最后添加一个换行符。 |
fputs |
fputs(line,81,stdin) |
能指定输出长度,不会自动添加换行符。 |
printf |
|
|
5、字符串函数
|
功能 |
例子 |
注意 |
strlen |
检查字符串长度 |
Strlen(str) |
|
strcat |
第二个字符串拷贝到第一个字符串结尾 |
Strcat(s1,const s2) |
不检查第一个数组是否能容纳第二个数组 |
strncat |
Strcat进化版,指明了最大允许天界的字符的数量 |
Strncat(s1, const s2, MAX) |
|
strcmp |
字符串比较,如果两个字符串完全一样就会返回0 |
Strcmp(const s1, const s2) |
S1比s2次序高则返回负数;s1比s2次序低则返回正数。 |
strncmp |
比较指定位置的字符 |
Strncmp(list[i],”astro”,5) 比较list中以astro开头的单词 |
|
Strcpy |
将第二个字符串复制到第一个字符串 |
Strcpy(s1, const s2) |
1、不检查s1是否有位置容纳s2; 2、可以复制s1到s1指定位置,例如:strcpy(copy+7,orig) |
strncpy |
Strcpy升级版,能指定最大可复制字符数。 |
Strcpy(s1,const s2,MAX) |
|
sprintf |
将几个元素组合成一个字符串 |
Sprintf(formal,”%s and %s will be %0.2f\n”,last,first,prize) |
|