上一篇简单介绍了字符串,这篇说一说字符串的常见函数.
1.字符串输出
内容在书11.3章.
当然了,这里的输入输出不只是从键盘读取,还可能是从文件中读取.
1.1 puts()
puts()函数使用简单,只需把字符串的地址作为参数即可.
# define STR "define string"
int main(void) {
const char * str1 = "const main string";//没有添加换行符
char str2[] = "char array main string";
puts(STR);
puts(str1);
puts(str2);
puts(&str1[9]);
puts(str2 + 7);
return 0;
}
运行结果
define string
const main string
char array main string
n string
ray main string
puts()函数会自动添加换行符.在读取到空白字符的时候就会停止输出.如果对指针进行加法运算,则从计算完毕的位置开始输出.
1.2 fputs()
相比于puts(),fputs()多了一个参数,用来指明如何输出(如输出在显示器上或硬盘中).
若要输出在显示器(标准输出),则第二个参数为"stdout".此时跟puts()的效果是一样的,不同的是fputs()不会自动添加换行符.
# define STR "define string"
int main(void) {
fputs(STR, stdout);
fputs(STR, stdout);
return 0;
}
运行结果
define stringdefine string
可以看到两次输出之间并没有换行,也没有空格等空白字符.
1.3 printf()
printf()我们经常使用,相对于前两个,可能稍显麻烦,但是可以通过转换说明更加自由的输出字符串.前面已经说过,所以这里就一笔带过.
2. 字符串输入
内容在书11.2章.
其实还有一个gets()函数,它与puts()刚好相反,但是由于安全性问题所以在C11标准中直接被废除.通常与puts()配合使用.
2.1 fgets()
与fputs()相比,fgets()多了一个参数.同样经常与fputs()配合使用.
fgets(字符串, 读取字符的最大数量, 要读入的源)
使用时有几点需要注意
1.如果指明读取的最大数量为n,则fgets()会读取"