接受字符:getchar();

創(chuàng)新互聯(lián)專(zhuān)注于企業(yè)全網(wǎng)整合營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、瑞昌網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5技術(shù)、商城開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為瑞昌等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
輸出字符:putchar();
不過(guò)每次只能接受輸出一個(gè)字符.
char *fun(char *a, int len, char c)//函數(shù)功能返回字符串a(chǎn)中第一個(gè)以字符c開(kāi)頭的字串
{
int i;
char *p=a;
for(i=0;ilen;i++)
{
if(*p==c)
{
break;
}
p++;
}
if(i==len)
{
printf("沒(méi)有匹配!\n");
return null;
}
else
{
return p;
}
}
int main()
{
char s[10]="abcdefghi";
char in;
char *p;
printf("輸入你要匹配的字符:");
scanf("%c", in);
p=fun(s, 10, in);
printf("result:%s",p);
return 0;
}
gets,scanf都會(huì)在末尾加上\0的,要不然字符串就沒(méi)法結(jié)束了;
他們的不同在于,scanf碰到緩沖區(qū)里面的空字符(空格,tab,回車(chē),換行就會(huì)截?cái)嗖⑻砑覾0),而gets是要等回車(chē)才截?cái)嘧址⑻砑覾0的;
比如用輸入字符串:abcdefg hijk回車(chē);
用scanf的話,會(huì)得到abcdefg,而gets則是:abcdefg hijk。
C語(yǔ)言是一門(mén)通用計(jì)算機(jī)編程語(yǔ)言,應(yīng)用廣泛。C語(yǔ)言的設(shè)計(jì)目標(biāo)是提供一種能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語(yǔ)言。
盡管C語(yǔ)言提供了許多低級(jí)處理的功能,但仍然保持著良好跨平臺(tái)的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫(xiě)出的C語(yǔ)言程序可在許多電腦平臺(tái)上進(jìn)行編譯,甚至包含一些嵌入式處理器(單片機(jī)或稱(chēng)MCU)以及超級(jí)電腦等作業(yè)平臺(tái)。
二十世紀(jì)八十年代,為了避免各開(kāi)發(fā)廠商用的C語(yǔ)言語(yǔ)法產(chǎn)生差異,由美國(guó)國(guó)家標(biāo)準(zhǔn)局為C語(yǔ)言制定了一套完整的美國(guó)國(guó)家標(biāo)準(zhǔn)語(yǔ)法,稱(chēng)為ANSI C,作為C語(yǔ)言最初的標(biāo)準(zhǔn)。目前2011年12月8日,國(guó)際標(biāo)準(zhǔn)化組織(ISO)和國(guó)際電工委員會(huì)(IEC)發(fā)布的C11標(biāo)準(zhǔn)是C語(yǔ)言的第三個(gè)官方標(biāo)準(zhǔn),也是C語(yǔ)言的最新標(biāo)準(zhǔn),該標(biāo)準(zhǔn)更好的支持了漢字函數(shù)名和漢字標(biāo)識(shí)符,一定程度上實(shí)現(xiàn)了漢字編程。
字符串的函數(shù)很多,有輸入/輸出函數(shù):gets()/puts(),有拷貝函數(shù)strcpy(),字符串連接函數(shù):strcat(),字符串比較函數(shù)strcmp(),測(cè)長(zhǎng)度函數(shù):strlen(),大小寫(xiě)轉(zhuǎn)換:strlwr()/strupr()等等,如果調(diào)用的話,都要在頭文件加預(yù)處理命令:
#include
“string.h”。
scanf將接收到的回車(chē)扔回到緩沖區(qū),gets將接收到的回車(chē)符號(hào)轉(zhuǎn)變?yōu)閈0存入str,使用gets不檢查字符串是否超出大小,存在安全問(wèn)題,建議用fgets
#include stdio.h
#include string.h
int main(void){
char str1[10]="aaaaaaaaa",str2[10]="bbbbbbbbb";
scanf("%s",str1);
// getchar();
gets(str2);
return 0;
}
這里面的getchar()就是為了接收扔回到緩沖區(qū)的回車(chē),否則,str2只能接收到一個(gè)回車(chē)符。
5 scanf("%s",str1);
(gdb) s
abcdef
(gdb) p str1
$1 = "abcdef\000aa"
(gdb) p str2
$2 = "\000bbbbbbbb"
1、可以寫(xiě)一個(gè)函數(shù)接受一個(gè)字符串和一個(gè)字符,如果此字符出現(xiàn)在字符串中,就將串中的字符刪除,要求刪除該字符后,后續(xù)的字符向前移,以填充該空位。
2、例程:
#includestdio.h
#includestring.h
#define?MAX?80
void?Delete(char?str[],char?c)
{
int?i;
int?l=strlen(str);
for(i=0;il;i++)
{
if(str[i]?==?c)
{
int?j;
for(j=i;jl;j++)
str[j]=str[j+1];
break;
}
}
}
int?main()
{
char?str[MAX],c;
printf("輸入一個(gè)字符串:");
gets(str);
printf("輸入一個(gè)字符:");
c=getchar();
Delete(str,c);
puts(str);
return?0;
}
文章題目:c語(yǔ)言中接收字符串的函數(shù),c語(yǔ)言函數(shù)調(diào)用字符串
地址分享:http://chinadenli.net/article9/dsgegoh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、Google、小程序開(kāi)發(fā)、動(dòng)態(tài)網(wǎng)站、外貿(mào)建站、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)