C有三個用于輸出字符串的標準庫函數puts()、fputs()和printf()。
1、puts()函數只需要給出字符串參數的地址。
~~~
#include <stdio.h>
int puts(const char *s);
~~~
示例:
~~~
#include <stdio.h>
#define DEF "I am libing"
int
main(int argc, char **argv)
{
char str1[30] = "I am libing.";
const char *str2 = "I am libing";
puts("I am libing.");
puts(DEF);
puts(str1);
puts(str2);
return 0;
}
~~~
運行結果測試:
~~~
I am libing.
I am libing
I am libing.
I am libing
~~~
注意:上面的所有字符串都是單行顯示,但并沒有在后面添加換行符。這就是,與printf()不同,puts()顯示字符串時自動在其后添加一個換行符。
2、fputs()函數時puts()的面向文件版本。兩者的區別是:
a、fputs()需要第二個參數來說明要寫的文件。
b、與puts()不同,fputs()并不為輸出自動添加換行符。
~~~
#include <stdio.h>
int fputs(const char *s, FILE *stream);
~~~
注意:gets()丟掉輸入里的換行符,但puts()為輸出添加換行符。另一方面,fgets()存儲輸入中的換行符,而fputs()也不為輸出添加換行符。
技巧:假定寫一個循環,讀取一行并把它回顯在下一行,可以這么寫:
~~~
char line[80];
while(gets(line))
puts(line);
~~~
3、printf()與puts()的區別之一就是printf()并不自動在新行上輸出每一個字符串。必須指明需要另起一行的地方。
pintf("%s \n", string);等同于 puts(string);
- 前言
- (四)回調函數
- (一)while(1)死循環與for(;;)死循環的區別
- (二)static關鍵字
- (三)函數
- (四)可變參數函數
- (五)setjmp和longjmp
- (六)指針
- (七)回調函數
- (八)字符串
- (九)動態內存分配
- (十)結構體
- (十一)深入理解指針
- (十二)命令行參數
- (十三)printf、fprintf、sprintf和snprintf函數
- (十四)const關鍵字詳解
- (十五)字符串輸入函數fgets、gets和scanf
- (十六)字符串輸出函數puts、fputs和printf
- (十七)字符/字符串輸出函數fputc、fputs、putc、putchar和puts
- (十八)字符/字符串輸入函數fgetc、fgets、getc、getchar和gets
- (十九)restrict關鍵詞
- (二十)scanf函數詳解
- (二一)內聯函數
- (二二)位操作
- (二三)errno變量
- (二四)內存分配