字符串函数
1.字符串输入
gets()函数
从系统的标准输入设备(通常是键盘)获取一个字符串,当检测到换行符表示输入结束。例子:
Snip20170313_69.pngfgets()函数
gets()的一个不足之处是不检测预留存储空间是否能够容纳实际输入的数据。是不安全的,此函数和gets()区别主要下面三点:
- 第二个参数说明最大读入字符数,如果这个参数值为n,那么此函数读取最多到n-1个。
- gets()读到换行符会存到字符串中。
- 第三个参数说明读哪个文件,从键盘读取时可以使用stdin。
scanf()函数
scanf 和gets()的区别是何时结束字符串的读取:scanf会根据指定的字符串宽度(比如%10s,会读入10个字符)或者直到遇到第一个空白字符,两者先满足就那种方式终止。
2.字符串的输出
puts()函数
与printf()不同,他显示字符串后会在结尾自动加上换行符,输入的地址,是put函数的起始地址,然后遇到空字符就停下来。
fputs()函数
fputs()与puts不同的地方如下:
- 第二个参数说明写的文件,可以使用stdout作为参数进行输出显示
- 与puts函数不同,不会自动添加换行符。
printf()函数
没有puts()方便,但是可以格式化多种数据类型主要区别:
printf不会自动的在新行上输出每个字符串,需要指名需要输出的地方。
3.字符串函数
strlen()函数
可以得到字符串长度的函数,也可以截取字符串,例子如下:
Snip20170313_71.pngstrcat()函数
接受两个字符串,把后面一个拷贝拼接在前一个字符串的末尾处。
strncat()函数
strcat()函数不检查第一个数组是否有足够的空间容纳第二个字符串,strncat()会有个参数来指名最多允许添加的字符的数目。
strcmp ()函数
比较字符串大小,只看第一个空字符串之前的部分。返回值是0,1,-1。
strncmp()变种
有第三个参数可以指定前两个字符串比较到哪个位置。
strcpy()和strncpy() 函数
strcpy()函数把字符串从零时数组复制到一个永久的目的地。
strcpy的高级特性:第一个参数是一个字符的地址,不需要指向数组开始。
同样的,strcpy不检查目标字符串是否可以容纳下源字符串,strncpy()提供第三个参数来解决这个问题。
4.把字符串转为数字
atoi(),atol(),atof()分别把数字的字符串表示转换为int,long和double形式。strtol(),strtoul()和strtod()函数分别把数字的字符串表示转换为long,unsigned long和double形式。
以上内容为本人学习时的总结,后期会继续修改或者增加。
参考:
- 中文版《 C Primer Plus》(第五版)