- 较大的数组应声明于main函数外,否则可能无法运行
- 数组直接不能直接赋值操作,可以用memcpy()
- memcpy(b,a,sizeof(int)*k),表示从a数组赋值K个int元素到b
- 需要头文件string.h
- memset()
- 头文件string.h
- memset(a,0,sizeof(a)),表示把数组清零
- 很多情况下,最好是在做一件事前先判断,而不要做完再判断修改。
- 字符数组
- 转义字符 escape sequence
- scanf("%s",s)
- 会读入一个不含空格、TAB、回车字符的字符串,存入s。//遇到的话会停下!
- 注意s前没有&符号
- 若是字符串char s[max][max1]可以用 scanf("%s",s[i])读取第i个字符
- 注意,遇到空白字符会停下
- %5d,表示按照五位打印,不足5位在前面补空格(%03d,前面补0)
- sprintf
- 把信息输出到字符串
- 注意要保证写入的字符串足够大
- printf--屏幕,fprintf--文件,sprintf--字符串
- 足够大:字符个数+1
- 以空字符" "结尾," "截断
- strchr:在一个字符串中查找单个字符
- strlen(s),获取字符串s的实际长度
- 实际长度:结束标记“ ”前的字符个数
- strcmp(a,b)--比较, strcat(a,b)--连接,都用string.h头文件
- fgetc(fin)
- 打开一个文件,读取一个字符,返回一个int值(文件结束的特殊标记EOF,可以区别开来)
- 如果要从标准输入读取一个字符,可以用getchar(), 等价于fgetc(stdin);
- 一般在检查它返回值不是EOF后,再将其值转换为char值。
- fgetc(),getchar()都是用于读取下一个字符的。
- 不同操作系统的回车换行符是不一样的
- windows下的是“ ” " "
- Linux则是" "
- macOS是" "
- fgets(buf,maxn,fin)
- 读取完整的一行
- buf的声明为buf[maxn]
- 函数读取不超过manx-1个字符,然后在末尾加上' '
- 一旦读到 就会停止,因此," "也会是Buf字符串的最后一个有效字符
- 在文件末尾的时候 最后一个有效字符就不是' '了。
- 当一个字符也没有读到的时候,fgets()返回NULL