缓冲 完全缓冲: 缓冲区满时刷新一次
行缓冲: 一行刷新一次
重定向: 将输入/输出 换地方显示
./str > err.txt
输出(大于号)
输入(小于号)
定义字符串:
1.字符串常量 “abc”,只存储一份,存储在内存里
2.char数组 输入多留1个空字符的空间
3.char指针 const char*p 使用const,初始化一个指向字符串常量的指针
4、字符串数组
char *tab[5] 指针数组 是数组里面装着指针
sizeof( ) = 20 5*4
数组指针 是指针,指向一个数组
Int(*p)[6]
char tab[5][100]
指针需要初始化,以防野指针
gets()函数 , 把 ‘\n’ ‘\0’
puts()函数, 把 ‘\0’-> ‘\n’
gets() 不检查预先分配的内存空间大小, 会造成溢出
fgets() 会检查
fgets(name,100,stdin) 添加 ‘\n’
fputs(name,100,stdin) 不会 + ‘\n’
char str[100];
char *name = str
strlen 查长度
strcat ( ) 将第二个字符串的一份拷贝添加到第一个字符串结尾
strncat() 可将多个连接
strcat(str1,str2)
printf(“%s”,strcat(str1,str2))并不检查是否能容纳2个,会溢出错误
strcmp 比较字符串 相等为0;不等为非0。
前面大正数,前面小负数
strncmp
strchr(tab,c)找出一个字符第一次出现的第一个位置
strrchr(),找出一个字符最后出现的位置
strstr
直接查询 man strcpy man + ……
strcpy 拷贝 (char*dest,const char *src)
字符数组(定义足够大); 只读不改 字符串
strncpy (……)
都用指针实现
sprint() 写到字符串里
char *strchr(const char*s, int c)
char strstr(const char *s1, const char s2)
函数返回一个指针,指向S1字符
数组在函数中传递数组: 实际上传递的是指针