字符数组
输入输出
输入函数
- scanf(''%s'', s)读入字符串,在第一个空白符(' ' 、'\n' 、'\t' )处停止,不读入空白符,在串尾自动添加'\0’ 。
- gets(s)读入一行字符,直到遇到'\n' ,读入换行符并将其舍弃,在串尾自动添加'\0’ 。
- c = getchar() scanf(''%c'', &c)读入下一个字符,包括空白符。
输入小结
- scanf(''%d'') 和scanf(''%s'') 是“空白符不敏感”的,无论有多少空白符都会忽略。
- gets() 和getchar() 能力更“强”,空白符也会读入使用时需留心。
- 如果读入的字符串中没有空格,建议用scanf(''%s'') ,若需要读入空格,则必须用gets()。
- 两者混用时要明确每一个空格和回车的去向。
输出函数
- printf() 格式化输出
- puts(s) 输出s串,并在最后自动添加回车'\n'
常用字符串处理函数
头文件#include <string.h>
- strlen(s)最常用的字符串函数,一般紧跟在输入之后,读完字符串后马就上测长度。
- strcmp(s1, s2)用来比较两个字符串字典序的大小,即从左到右依次比较每个字符的ACSII 码值,一旦分出大小就不再比较之后的字符。与两个串的长度无关。
- 从内存层面快速初始化:memset()
初始化为全0: memset(a, 0, sizeof(a));
初始化为全-1: memset(a, -1, sizeof(a));
初始化为无穷大: memset(a, 0x3f, sizeof(a));
变量和数组定义后,如果不读入数据,就一定要初始化