在C語言中,輸入輸出字符串有以下兩種方式:
創(chuàng)新互聯(lián)專注于企業(yè)營銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、樂亭網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開發(fā)、電子商務(wù)商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為樂亭等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
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)容后,會(huì)自動(dòng)在結(jié)尾增加換行。
定義
char str[100];
輸入
gets(str);
輸出
puts(str);
擴(kuò)展資料:
起初,C語言沒有官方標(biāo)準(zhǔn)。1978年由美國電話電報(bào)公司(ATT)貝爾實(shí)驗(yàn)室正式發(fā)表了C語言。布萊恩·柯林漢(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本書,名叫《The C Programming Language》。
這本書被 C語言開發(fā)者們稱為KR,很多年來被當(dāng)作 C語言的非正式的標(biāo)準(zhǔn)說明。人們稱這個(gè)版本的 C語言為KR C。
KR C主要介紹了以下特色:
結(jié)構(gòu)體(struct)類型
長整數(shù)(long int)類型
無符號(hào)整數(shù)(unsigned int)類型
把運(yùn)算符=+和=-改為+=和-=。因?yàn)?+和=-會(huì)使得編譯器不知道使用者要處理i = -10還是i =- 10,使得處理上產(chǎn)生混淆。
即使在后來ANSI C標(biāo)準(zhǔn)被提出的許多年后,KR C仍然是許多編譯器的最 準(zhǔn)要求,許多老舊的編譯器仍然運(yùn)行KR C的標(biāo)準(zhǔn)。
1970到80年代,C語言被廣泛應(yīng)用,從大型主機(jī)到小型微機(jī),也衍生了C語言的很多不同版本。
1983年,美國國家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)成立了一個(gè)委員會(huì)X3J11,來制定 C語言標(biāo)準(zhǔn)。
1989年,美國國家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)通過了C語言標(biāo)準(zhǔn),被稱為ANSI X3.159-1989 "Programming Language C"。因?yàn)檫@個(gè)標(biāo)準(zhǔn)是1989年通過的,所以一般簡稱C89標(biāo)準(zhǔn)。有些人也簡稱ANSI C,因?yàn)檫@個(gè)標(biāo)準(zhǔn)是美國國家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)發(fā)布的。
1990年,國際標(biāo)準(zhǔn)化組織(ISO)和國際電工委員會(huì)(IEC)把C89標(biāo)準(zhǔn)定為C語言的國際標(biāo)準(zhǔn),命名為ISO/IEC 9899:1990 - Programming languages -- C? 。
因?yàn)榇藰?biāo)準(zhǔn)是在1990年發(fā)布的,所以有些人把簡稱作C90標(biāo)準(zhǔn)。不過大多數(shù)人依然稱之為C89標(biāo)準(zhǔn),因?yàn)榇藰?biāo)準(zhǔn)與ANSI C89標(biāo)準(zhǔn)完全等同。
1994年,國際標(biāo)準(zhǔn)化組織(ISO)和國際電工委員會(huì)(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)和國際電工委員會(huì)(IEC)再次發(fā)布了C89標(biāo)準(zhǔn)修訂版,名叫ISO/IEC 9899:1990/Amd 1:1995 - C Integrity?[7]??,有些人簡稱為C95標(biāo)準(zhǔn)。
參考資料:百度百科-c語言
putchar 函數(shù)是字符輸出函數(shù), 其功能是在顯示器上輸出單個(gè)字符。其一般形式是putchar(字符變量),對(duì)控制字符則執(zhí)行控制功能,不在屏幕上顯示。
fprintf()、fscanf()、fgets()和fputs()
舉例
fprintf(fp,"%s",words);
fscanf(fp,"%s",words);
fgets(buf,MAX,fp);//buf 是一個(gè)char數(shù)組的名稱,MAX是字符串的最大長度,fp是一個(gè)FILE指針。
fputs(buf,fp);//buf是一個(gè)char數(shù)組的名稱,fp是一個(gè)FILE指針。
擴(kuò)展資料:
傳遞函數(shù)概念的適用范圍限于線性常微分方程系統(tǒng).當(dāng)然,在這類系統(tǒng)的分析和設(shè)計(jì)中,傳遞函數(shù)方法的應(yīng)用是很廣泛的。下面是有關(guān)傳遞函數(shù)的一些重要說明(下列各項(xiàng)說明中涉及的均為線性常微分方程描述的系統(tǒng)):
1、系統(tǒng)的傳遞函數(shù)是一種數(shù)學(xué)模型,它表示聯(lián)系輸出變量與輸入變量的微分方程的一種運(yùn)算方法;
2、傳遞函數(shù)是系統(tǒng)本身的一種屬性,它與輸入量或驅(qū)動(dòng)函數(shù)的大小和性質(zhì)無關(guān);
3、傳遞函數(shù)包含聯(lián)系輸入量與輸出量所必需的單位,但是它不提供有關(guān)系統(tǒng)物理結(jié)構(gòu)的任何信息(許多物理上完全不同的系統(tǒng),可以具有相同的傳遞函數(shù),稱之為相似系統(tǒng));
參考資料來源:百度百科-傳遞函數(shù)
字符串的函數(shù)很多,有輸入/輸出函數(shù):gets()/puts(),有拷貝函數(shù)strcpy(),字符串連接函數(shù):strcat(),字符串比較函數(shù)strcmp(),測(cè)長度函數(shù):strlen(),大小寫轉(zhuǎn)換:strlwr()/strupr()等等,如果調(diào)用的話,都要在頭文件加預(yù)處理命令:
#include
“string.h”。
c語言輸入字符串scanf:
有了chara;a就是這個(gè)數(shù)組的第一個(gè)元素的指針,a就是這個(gè)數(shù)組的指針;因?yàn)橐痪S數(shù)組的第一個(gè)元素的指針和這個(gè)數(shù)組的指針是同一個(gè)地址,區(qū)別是a+1指向a,而a+1就指向a了。但a和a的"值"是相同的,只是類型不同。
含義
scanf是c語言中的標(biāo)準(zhǔn)庫函數(shù),主要作用是接收用戶輸入的數(shù)據(jù)。scanf是C語言中的輸入函數(shù),可以從鍵盤獲得用戶輸入,和printf輸出功能正好相反。scanf的輸入格式是多種多樣的,使用時(shí)需根據(jù)情況選擇,最常用的是十進(jìn)制整數(shù)型輸入%d。
前兩個(gè)scanf:輸入一個(gè)整數(shù),按下回車鍵,scanf會(huì)讀取鍵盤輸入,并把數(shù)據(jù)賦值給c(或d);后兩個(gè)scanf:都是一樣功能,輸入格式不同,對(duì)于scanf(),輸入數(shù)據(jù)的格式要和控制字符串的格式保持一致。比如:輸入15,24回車,輸入15,24回車,同樣的把值分別賦給c和d。
char ch[5]表示的是定義了一個(gè)字符數(shù)組(即字符串),數(shù)組單元有5個(gè),每個(gè)單元都是字符型,由于字符串是用\0作結(jié)束的,5個(gè)單元的字符數(shù)組實(shí)際上能完整存儲(chǔ)的只能是長度不超過4個(gè)字符的字符串,多了的話就要占用其他單元了(這些單元有可能會(huì)被系統(tǒng)分配給其他變量,而能夠用來存儲(chǔ)字符串的就是你定義的這5個(gè)單元的字符數(shù)組),可能會(huì)出現(xiàn)溢出,也就是有時(shí)候會(huì)出現(xiàn)輸出的字符串后面有亂碼
char ch表示定義了一個(gè)字符變量,用scanf為其賦值的話應(yīng)該用%c,即scanf("%c",ch),它只能表示一個(gè)字符
char ch[]數(shù)組定義不允許[]里為空
char ch[1]表示的也是一個(gè)字符數(shù)組,所以你可以輸入字符串,同樣隨便輸入就有可能溢出
C語言輸入輸出函數(shù)有很多,bai標(biāo)準(zhǔn)I/O函數(shù)du中包含了如下幾個(gè)常用的函數(shù):
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
int scanf(const char *format, arg_list)
scanf主要從標(biāo)準(zhǔn)zhi輸入流中獲取dao參數(shù)值,format為指定的參數(shù)格式及參數(shù)類型,如scanf("%s,%d",str,icount);
它要求在標(biāo)準(zhǔn)輸入流中輸入類似"son of bitch,1000"這樣的字符串,同時(shí)程序會(huì)將"son of bitch"給str,1000給icount.
scanf函數(shù)的返回值為int值,即成功賦值的個(gè)數(shù),在上例中如果函數(shù)調(diào)用成功,則會(huì)返回2,所以我們?cè)趯懗绦驎r(shí),可以通過
語句if(scanf("%s,%d",str,icount) != 2){...}來判斷用戶輸入是否正確.
int printf(const char *format, arg_list)
printf主要是將格式化字符串輸出到標(biāo)準(zhǔn)輸出流中,在stdio.h頭文件中定義了標(biāo)準(zhǔn)的輸入和輸出,分別是stdin,stdout.
arg_list可以是變量名,也可以是表達(dá)式,但最終都會(huì)以值的形式填充進(jìn)format中.
int getc(FILE *fp)
getc主要是從文件中讀出一個(gè)字符.常用的判斷文件是否讀取結(jié)束的語句為:(ch = getc(fp)) != EOF.EOF為文件結(jié)束標(biāo)志,
定義在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定義在stdlib.h中一樣,文件也可以被理解為一種流,所以當(dāng)fp為stdin
時(shí),getc(stdin)就等同于getchar()了.
int putc(int ch,FILE *fp)
putc主要是把字符ch寫到文件fp中去.如果fp為stdout,則putc就等同于putchar()了.
int getchar(void)
getchar主要是從標(biāo)準(zhǔn)輸入流讀取一個(gè)字符.默認(rèn)的標(biāo)準(zhǔn)輸入流即stdio.h中定義的stdin.但是從輸入流中讀取字符時(shí)又
涉及到緩沖的問題,所以并不是在屏幕中敲上一個(gè)字符程序就會(huì)運(yùn)行,一般是通過在屏幕上敲上回車鍵,然后將回車前的字符
串放在緩沖區(qū)中,getchar就是在緩沖區(qū)中一個(gè)一個(gè)的讀字符.當(dāng)然也可以在while循環(huán)中指定終止字符,如下面的語句:
while ((c = getchar()) != '#')這是以#來結(jié)束的.
int putchar(int ch)
putchar(ch)主要是把字符ch寫到標(biāo)準(zhǔn)流stdout中去.
char * gets(char *str)
gets主要是從標(biāo)準(zhǔn)輸入流讀取字符串并回顯,讀到換行符時(shí)退出,并會(huì)將換行符省去.
int puts(char *str)
puts主要是把字符串str寫到標(biāo)準(zhǔn)流stdout中去,并會(huì)在輸出到最后時(shí)添加一個(gè)換行符.
char *fgets(char *str, int num, FILE *fp)
str是存放讀入的字符數(shù)組指針,num是最大允許的讀入字符數(shù),fp是文件指針.fgets的功能是讀一行字符,該行的字符數(shù)
不大于num-1.因?yàn)閒gets函數(shù)會(huì)在末尾加上一個(gè)空字符以構(gòu)成一個(gè)字符串.另外fgets在讀取到換行符后不會(huì)將其省略.
int fputs(char *str, file *fp)
fputs將str寫入fp.fputs與puts的不同之處是fputs在打印時(shí)并不添加換行符.
int fgetc(FILE *fp)
fgetc從fp的當(dāng)前位置讀取一個(gè)字符.
int fputc(int ch, file *fp)
fputc是將ch寫入fp當(dāng)前指定位置.
int fscanf(FILE *fp, char *format,...)
fscanf按照指定格式從文件中出讀出數(shù)據(jù),并賦值到參數(shù)列表中.
int fprintf(FILE *fp, char *format,...)
fprintf將格式化數(shù)據(jù)寫入流式文件中.