就是只能從輸入設(shè)備上接受一個字符的輸入和只能向輸出設(shè)備輸出一個字符。比如,用了ch=getchar(),我輸入abc,電腦只接受了a,而不是abc,那么ch就是等于a了,然后我putchar('abc'),顯示也只能顯示一個a,無法把三個字符全部顯示出來。
宿遷網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。成都創(chuàng)新互聯(lián)從2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
int i;
for(i = 9;i 50; i++)
{
printf("str[%d] = %c\t",i,str[i]);
}
或者
int main()
{
int i = 0;
char str[10];
char *str = "Hello World";
char *p = str + 1;
//假如要輸出1-4個元素,先把1-4個元素存到str
for(i=0; i4; i++)
{
str[i] = *p++;
}
printf("%s\n", str);//我沒有測試,你可以自己編譯看看結(jié)果,思路就是這樣
return 0;
}
在C語言中,getchar代表讀入一個字符,putchar代表輸出一個字符。getchar的用法是輸入時直接使用getchar()函數(shù)獲取字符,putchar的用法是傳入字符變量進(jìn)行打印。
getchar由宏實現(xiàn):#define getchar() getc(stdin)。getchar有一個int型的返回值,當(dāng)程序調(diào)用getchar時,程序就等著用戶按鍵。用戶輸入的字符被存放在鍵盤緩沖區(qū)中,直到用戶按回車為止(回車字符也放在緩沖區(qū)中)。
當(dāng)用戶鍵入回車之后,getchar才開始從stdio流中每次讀入一個字符。getchar函數(shù)的返回值是用戶輸入的字符的ASCII碼,若文件結(jié)尾(End-Of-File)則返回-1(EOF),且將用戶輸入的字符回顯到屏幕。如
用戶在按回車之前輸入了不止一個字符,其他字符會保留在鍵盤緩存區(qū)中,等待后續(xù)getchar調(diào)用讀取。也就是說,后續(xù)的getchar調(diào)用不會等待用戶按鍵,而直接讀取緩沖區(qū)中的字符,直到緩沖區(qū)中的字符讀完后,才等待用戶按鍵。
putchar作用是向終端輸出一個字符。其格式為putchar(c),其中c可以是被單引號(英文狀態(tài)下)引起來的一個字符,可以是介于0~127之間的一個十進(jìn)制整型數(shù),也可以是事先用char定義好的一個字符型變量。
擴(kuò)展資料:
C語言常用函數(shù):
1、int abs(int i):返回整型參數(shù)i的絕對值。
2、double cabs(struct complex znum):返回復(fù)數(shù)znum的絕對值。
3、double fabs(double x):返回雙精度參數(shù)x的絕對值。
4、double exp(double x):返回指數(shù)函數(shù)ex的值。
5、long labs(long n):返回長整型參數(shù)n的絕對值。
6、double frexp(double value,int *eptr):返回value=x*2n中x的值,n存貯在eptr中。
7、double ldexp(double value,int exp):返回value*2exp的值。
8、double log(double x):返回logex的值。
9、double log10(double x):返回log10x的值。
10、double pow(double x,double y):返回x^y的值。
參考資料來源:百度百科-getchar (計算機(jī)語言函數(shù))
參考資料來源:百度百科-putchar
C語言輸入輸出函數(shù)有很多,標(biāo)準(zhǔn)I/O函數(shù)中包含了如下幾個常用的函數(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)輸入流中獲取參數(shù)值,format為指定的參數(shù)格式及參數(shù)類型,如scanf("%s,%d",str,icount);
它要求在標(biāo)準(zhǔn)輸入流中輸入類似"son
of
bitch,1000"這樣的字符串,同時程序會將"son
of
bitch"給str,1000給icount.
scanf函數(shù)的返回值為int值,即成功賦值的個數(shù),在上例中如果函數(shù)調(diào)用成功,則會返回2,所以我們在寫程序時,可以通過
語句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á)式,但最終都會以值的形式填充進(jìn)format中.
int
getc(FILE
*fp)
getc主要是從文件中讀出一個字符.常用的判斷文件是否讀取結(jié)束的語句為:(ch
=
getc(fp))
!=
EOF.EOF為文件結(jié)束標(biāo)志,
定義在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定義在stdlib.h中一樣,文件也可以被理解為一種流,所以當(dāng)fp為stdin
時,getc(stdin)就等同于getchar()了.
int
putc(int
ch,FILE
*fp)
putc主要是把字符ch寫到文件fp中去.如果fp為stdout,則putc就等同于putchar()了.
int
getchar(void)
getchar主要是從標(biāo)準(zhǔn)輸入流讀取一個字符.默認(rèn)的標(biāo)準(zhǔn)輸入流即stdio.h中定義的stdin.但是從輸入流中讀取字符時又
涉及到緩沖的問題,所以并不是在屏幕中敲上一個字符程序就會運行,一般是通過在屏幕上敲上回車鍵,然后將回車前的字符
串放在緩沖區(qū)中,getchar就是在緩沖區(qū)中一個一個的讀字符.當(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)輸入流讀取字符串并回顯,讀到換行符時退出,并會將換行符省去.
int
puts(char
*str)
puts主要是把字符串str寫到標(biāo)準(zhǔn)流stdout中去,并會在輸出到最后時添加一個換行符.
char
*fgets(char
*str,
int
num,
FILE
*fp)
str是存放讀入的字符數(shù)組指針,num是最大允許的讀入字符數(shù),fp是文件指針.fgets的功能是讀一行字符,該行的字符數(shù)
不大于num-1.因為fgets函數(shù)會在末尾加上一個空字符以構(gòu)成一個字符串.另外fgets在讀取到換行符后不會將其省略.
int
fputs(char
*str,
file
*fp)
fputs將str寫入fp.fputs與puts的不同之處是fputs在打印時并不添加換行符.
int
fgetc(FILE
*fp)
fgetc從fp的當(dāng)前位置讀取一個字符.
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ù)寫入流式文件中.