第十一章
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) |
|