1,scanf对于输入字符串%s的处理:
scanf只会读取字符串中的第一个单词。
遇到空格就停止读取。
2,了解fgets()函数:
3,了解strlen()函数:
strlen()函数存储在<string.h>头文件中
strlen()函数主要作用是给出字符串中的字符长度。注释:sizeof为运算符,它以字节为单位给出对象的大小。
实用举例:
char name[40];
scanf("%s",name);
用户键盘输入:Serendipity Chance
printf("Your name of %zd letters occupies %zd memory cells.\n",strlen(name),sizeof(name));
11,40.
sizeof运算符报告 name数组有40个存储单元。但是只有前11个单元用来存储Serendipity。所以strlen()得出的结果是11。name数组里的第12个单元存储空字符。(注释:空字符:\0)strlen()并未将其计入。
如果定义一个字符常量
#define PRAISE "You are an extraordinary being."
printf("......"strlen(PRAISE),sizeof(PRAISE))
31.32
sizeof运算符给出的值更大,因为它把字符串末尾不可见的空字符也计算在内。
strlen把空格也算进去。
4,#define指令。定义字符用单引号,定义字符串用双引号。
5,printf的输出。
输出单个字符:
printf("%c",'char');
输出字符串:
printf("%s","character");
6,printf()的返回值
它返回打印字符的个数。如果有输出错误,printf()则返回一个负值。
例如:
int rv;
rv=printf("%d F is water's boiling point.\n",bph29);
32
它的计算针对所有字符数,包括空格和不可见的换行符(\n)。
7,printf()的转换说明以及标记
8,scanf的使用
假设scanf()根据一个%d转换说明读取一个整数。scanf()函数每次读取一个字符,跳过所有的空白字符,直到遇到第一个非空白字符才开始读取。
如果使用字符宽度,scanf()函数会在字段结尾或者第一个空白字符处停止读取(满足两个条件之一即停止)
如果第一个非空白字符是A而不是数字,scanf()函数就会停在那里,一直无法越过A读取下一个字符。