c語言用scanf輸入字符串:
我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、清江浦ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的清江浦網(wǎng)站制作公司
char s[300];
scanf("%s",s);
這個語句只能輸入不包含空格和跳格鍵的字符串并且以回車符結(jié)束輸入。
在C語言中,輸入輸出字符串有以下兩種方式:
1 用scanf/printf輸入輸出。
scanf/printf是C語言的格式化輸入輸出函數(shù),可以用于輸入輸出各種基礎(chǔ)類型,字符串(char*)也
其支持范圍內(nèi)。
格式化字符為%s。
定義
char str[100];
輸入
scanf("%s",str);
輸出
printf("%s",str);
2 C語言還支持專門的字符串輸入輸出函數(shù):gets/puts。
gets的作用為,讀入一行輸入,并將讀到的換行符替換為字符串結(jié)束符。
puts的作用為,將字符串單行輸出,即輸出字符串內(nèi)容后,會自動在結(jié)尾增加換行。
定義
char str[100];
輸入
gets(str);
輸出
puts(str);
擴(kuò)展資料:
起初,C語言沒有官方標(biāo)準(zhǔn)。1978年由美國電話電報公司(ATT)貝爾實驗室正式發(fā)表了C語言。布萊恩·柯林漢(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本書,名叫《The C Programming Language》。
這本書被 C語言開發(fā)者們稱為KR,很多年來被當(dāng)作 C語言的非正式的標(biāo)準(zhǔn)說明。人們稱這個版本的 C語言為KR C。
KR C主要介紹了以下特色:
結(jié)構(gòu)體(struct)類型
長整數(shù)(long int)類型
無符號整數(shù)(unsigned int)類型
把運算符=+和=-改為+=和-=。因為=+和=-會使得編譯器不知道使用者要處理i = -10還是i =- 10,使得處理上產(chǎn)生混淆。
即使在后來ANSI C標(biāo)準(zhǔn)被提出的許多年后,KR C仍然是許多編譯器的最 準(zhǔn)要求,許多老舊的編譯器仍然運行KR C的標(biāo)準(zhǔn)。
1970到80年代,C語言被廣泛應(yīng)用,從大型主機(jī)到小型微機(jī),也衍生了C語言的很多不同版本。
1983年,美國國家標(biāo)準(zhǔn)協(xié)會(ANSI)成立了一個委員會X3J11,來制定 C語言標(biāo)準(zhǔn)。
1989年,美國國家標(biāo)準(zhǔn)協(xié)會(ANSI)通過了C語言標(biāo)準(zhǔn),被稱為ANSI X3.159-1989 "Programming Language C"。因為這個標(biāo)準(zhǔn)是1989年通過的,所以一般簡稱C89標(biāo)準(zhǔn)。有些人也簡稱ANSI C,因為這個標(biāo)準(zhǔn)是美國國家標(biāo)準(zhǔn)協(xié)會(ANSI)發(fā)布的。
1990年,國際標(biāo)準(zhǔn)化組織(ISO)和國際電工委員會(IEC)把C89標(biāo)準(zhǔn)定為C語言的國際標(biāo)準(zhǔn),命名為ISO/IEC 9899:1990 - Programming languages -- C? 。
因為此標(biāo)準(zhǔn)是在1990年發(fā)布的,所以有些人把簡稱作C90標(biāo)準(zhǔn)。不過大多數(shù)人依然稱之為C89標(biāo)準(zhǔn),因為此標(biāo)準(zhǔn)與ANSI C89標(biāo)準(zhǔn)完全等同。
1994年,國際標(biāo)準(zhǔn)化組織(ISO)和國際電工委員會(IEC)發(fā)布了C89標(biāo)準(zhǔn)修訂版,名叫ISO/IEC 9899:1990/Cor 1:1994,有些人簡稱為C94標(biāo)準(zhǔn)。
1995年,國際標(biāo)準(zhǔn)化組織(ISO)和國際電工委員會(IEC)再次發(fā)布了C89標(biāo)準(zhǔn)修訂版,名叫ISO/IEC 9899:1990/Amd 1:1995 - C Integrity?[7]??,有些人簡稱為C95標(biāo)準(zhǔn)。
參考資料:百度百科-c語言
用gets()函數(shù);gets從標(biāo)準(zhǔn)輸入設(shè)備讀字符串函數(shù),其可以無限讀取,不會判斷上限,以回車結(jié)束讀取,所以程序員應(yīng)該確保buffer的空間足夠大,以便在執(zhí)行讀操作時不發(fā)生溢出。
功能
從stdin流中讀取字符串,直至接受到換行符或EOF時停止,并將讀取的結(jié)果存放在buffer指針?biāo)赶虻淖址麛?shù)組中。換行符不作為讀取串的內(nèi)容,讀取的換行符被轉(zhuǎn)換為‘\0’空字符,并由此來結(jié)束字符串。
返回值
讀入成功,返回與參數(shù)buffer相同的指針;讀入過程中遇到EOF(End-of-File)或發(fā)生錯誤,返回NULL指針。所以在遇到返回值為NULL的情況,要用ferror或feof函數(shù)檢查是發(fā)生錯誤還是遇到EOF。
擴(kuò)展資料:
gets()函數(shù)用法:
示例
1、C:
#include
stdio.h
//這個頭文件包含gets()函數(shù),這個函數(shù)在ISO/IEC
9899
2011(C11)標(biāo)準(zhǔn)中被移除
int
main(void)
{
char
str1;
//不要char*p,然后gets(p),這是錯誤的,因為p沒有指向有效的內(nèi)存,它可能指向任何非法地址//地方的未知大小的內(nèi)存塊,這樣以來,就可能修改了不屬于本程序的內(nèi)存的內(nèi)容
gets(str1);
printf("%s\n",
str1);
return
0;
}
#include
stdio.h//gets_s()用法
#define
CH
20
int
main(void)
{
char
ch[CH];
printf("請輸入你的名字:\n");
gets_s(ch,CH);
//這里不能用gets_s(ch);
printf("這是你的名字:%s\n",
ch);
return
0;
}
2、C++:
#include
iostream
#include
cstdio
using
namespace
std;
int
main()
{
char
str[100];
gets(str);
coutstrendl;
return
0;
}
gets()函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)讀取字符串直到換行符結(jié)束,但換行符會被丟棄,然后在末尾添加'\0'字符。其調(diào)用格式為:
gets(s);其中s為字符串變量(字符串?dāng)?shù)組名或字符串指針)。
gets(s)函數(shù)與scanf("%s",s)相似,但不完全相同,使用scanf("%s",s)
函數(shù)輸入字符串時存在一個問題,就是如果輸入了空格會認(rèn)為字符串結(jié)束,空格后的字符將作為下一個輸入項處理,但gets()函數(shù)將接收輸入的整個字符串直到遇到換行為止。
也就是說:gets()函數(shù)讀取到\n(我們輸入的回車)于是停止讀取,但是它不會把\n包含到字符串里面去。然而,和它配合使用的puts函數(shù),卻在輸出字符串的時候自動換行。
c語言輸入字符串scanf:
有了chara;a就是這個數(shù)組的第一個元素的指針,a就是這個數(shù)組的指針;因為一維數(shù)組的第一個元素的指針和這個數(shù)組的指針是同一個地址,區(qū)別是a+1指向a,而a+1就指向a了。但a和a的"值"是相同的,只是類型不同。
含義
scanf是c語言中的標(biāo)準(zhǔn)庫函數(shù),主要作用是接收用戶輸入的數(shù)據(jù)。scanf是C語言中的輸入函數(shù),可以從鍵盤獲得用戶輸入,和printf輸出功能正好相反。scanf的輸入格式是多種多樣的,使用時需根據(jù)情況選擇,最常用的是十進(jìn)制整數(shù)型輸入%d。
前兩個scanf:輸入一個整數(shù),按下回車鍵,scanf會讀取鍵盤輸入,并把數(shù)據(jù)賦值給c(或d);后兩個scanf:都是一樣功能,輸入格式不同,對于scanf(),輸入數(shù)據(jù)的格式要和控制字符串的格式保持一致。比如:輸入15,24回車,輸入15,24回車,同樣的把值分別賦給c和d。
c語言從鍵盤輸入字符串的步驟如下:
1.首先我們新建一個dev C++的項目。
2.接下來在項目中新建C語言程序文件。
3.然后在C語言文件中聲明一個字節(jié)數(shù)組。
4.接下來我們通過printf函數(shù)提示用戶輸入字符串,通過scanf接收用戶輸入的字符串。
5.接著在通過printf函數(shù)輸出用戶輸入的內(nèi)容。
6.最后運行C語言程序,我們輸入內(nèi)容以后就可以輸出了。這樣就解決了c語言從鍵盤輸入字符串的問題了。