gets()和puts()在頭文件stdio.h中聲明。這兩個(gè)函數(shù)用于字符串的輸入/輸出操作。
gets()函數(shù)使用戶可以輸入一些字符,然后按Enter鍵。 用戶輸入的所有字符都存儲(chǔ)在字符數(shù)組中。 空字符將添加到數(shù)組以使其成為字符串。 gets()允許用戶輸入以空格分隔的字符串。 它返回用戶輸入的字符串。
聲明
char[] gets(char[]);
#include<stdio.h> void main(){ char s[30]; printf("輸入字符串? "); gets(s); printf("You entered %s",s); }
輸入字符串? www.soo66.com 您輸入 www.soo66.com
使用gets()函數(shù)是有風(fēng)險(xiǎn)的,因?yàn)樗粓?zhí)行任何數(shù)組綁定檢查,并一直讀取字符,直到遇到新行(enter)。它會(huì)受到緩沖區(qū)溢出的影響,這可以通過使用fgets()來避免。fgets()確保讀取的字符不超過最大限制??聪旅娴膶?shí)例。
#include<stdio.h> void main() { char str[20]; printf("輸入字符串? "); fgets(str, 20, stdin); printf("%s", str); }
輸入字符串? www.soo66.com 基礎(chǔ)教程網(wǎng) www.soo66.com 基礎(chǔ)
puts()函數(shù)與printf()函數(shù)非常相似。puts()函數(shù)用于在控制臺(tái)上打印字符串,之前使用get()或scanf()函數(shù)讀取該字符串。函數(shù)的作用是:返回一個(gè)整數(shù)值,表示在控制臺(tái)上打印的字符數(shù)。由于它使用字符串打印額外的換行字符,從而將光標(biāo)移動(dòng)到控制臺(tái)上的新行,所以puts()返回的整數(shù)值總是等于字符串中出現(xiàn)的字符數(shù)加1。
聲明
int puts(char[])
讓我們看一個(gè)示例,該示例使用gets()讀取字符串,并使用puts()在控制臺(tái)上將其打印出來。
#include<stdio.h> #include <string.h> int main(){ char name[50]; printf("輸入你的名字: "); gets(name); //從用戶處讀取字符串 printf("你的名字是: "); puts(name); //顯示字符串 return 0; }
輸入你的名字: Seagull Li 你的名字是: Seagull Li