代碼如下:
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比西和網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式西和網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋西和地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
int main(void) {
char c;
printf("請輸入要測試的字符\n");
scanf("%c",c);
if(c == ' '){
printf("是空格\n");
}else{
printf("不是空格\n");
}
return 0;
}
C語言對字符判斷是否為空格有兩種方式:
代碼:if(c=='?')??printf("c是空格");這種方法比較直觀,直接比較當(dāng)前字符和空格是不是相等,是的話就是空格了。代碼演示如下:
2.代碼:if(c==32)???printf("c是空格");c語言中字符和數(shù)值比較,會(huì)轉(zhuǎn)換為數(shù)值比較,也就是把字符轉(zhuǎn)換為對應(yīng)的ascii碼,空格字符的ascii碼是32,直接比較32就行了。代碼演示如下:
c語言中輸出字符串的函數(shù)有printf("%s") puts() fputs()等,字符串中可以是任意的字符,包括空格在內(nèi),無特殊處理,如:
char?str[]="hello?world"?;
printf("%s\n",?str?);
puts(str);
fputs(str,stdin);
但在輸入帶有空格的字符串時(shí),只能用gets()或fgets(),而不能用scanf("%s") ,因?yàn)閟canf("%s")輸入字符串時(shí),遇到空格就結(jié)束了輸入。而gets()函數(shù)是以回車為結(jié)束符的輸入函數(shù),可以輸入帶空格的字符串。
輸出空格 空格可以直接用敲空格輸入的空格表示 注意在C語言里面 字符 或者字符串 需要用''和 ""界定
這樣 ' ' 以及 這樣" "
當(dāng)然ascii碼也可以 只要你不嫌記憶麻煩
然后輸出字符 或者是 字符串的然后函數(shù)都可以輸出空格
printf(" ");//輸出1個(gè)空格 注意用雙引號(hào)做界定符
putchar(' ');//輸出1個(gè)空格 注意用單引號(hào)做界定符
puts(" ");//輸出一個(gè)空格并回車
用gets()函數(shù);gets從標(biāo)準(zhǔn)輸入設(shè)備讀字符串函數(shù),其可以無限讀取,不會(huì)判斷上限,以回車結(jié)束讀取,所以程序員應(yīng)該確保buffer的空間足夠大,以便在執(zhí)行讀操作時(shí)不發(fā)生溢出。
功能
從stdin流中讀取字符串,直至接受到換行符或EOF時(shí)停止,并將讀取的結(jié)果存放在buffer指針?biāo)赶虻淖址麛?shù)組中。換行符不作為讀取串的內(nèi)容,讀取的換行符被轉(zhuǎn)換為‘\0’空字符,并由此來結(jié)束字符串。
返回值
讀入成功,返回與參數(shù)buffer相同的指針;讀入過程中遇到EOF(End-of-File)或發(fā)生錯(cuò)誤,返回NULL指針。所以在遇到返回值為NULL的情況,要用ferror或feof函數(shù)檢查是發(fā)生錯(cuò)誤還是遇到EOF。
擴(kuò)展資料:
gets()函數(shù)用法:
示例
1、C:
#include stdio.h? ? //這個(gè)頭文件包含gets()函數(shù),這個(gè)函數(shù)在ISO/IEC 9899 2011(C11)標(biāo)準(zhǔn)中被移除
int main(void)
{
char str1;? //不要char*p,然后gets(p),這是錯(cuò)誤的,因?yàn)閜沒有指向有效的內(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é)束,但換行符會(huì)被丟棄,然后在末尾添加'\0'字符。其調(diào)用格式為:
gets(s);其中s為字符串變量(字符串?dāng)?shù)組名或字符串指針)。
gets(s)函數(shù)與scanf("%s",s)相似,但不完全相同,使用scanf("%s",s) 函數(shù)輸入字符串時(shí)存在一個(gè)問題,就是如果輸入了空格會(huì)認(rèn)為字符串結(jié)束,空格后的字符將作為下一個(gè)輸入項(xiàng)處理,但gets()函數(shù)將接收輸入的整個(gè)字符串直到遇到換行為止。
也就是說:gets()函數(shù)讀取到\n(我們輸入的回車)于是停止讀取,但是它不會(huì)把\n包含到字符串里面去。然而,和它配合使用的puts函數(shù),卻在輸出字符串的時(shí)候自動(dòng)換行。
c語言去掉字符串的空格函數(shù) void trim(char *s){} 如下:
#include stdio.h
void trim(char *s){
int i,L;
L=strlen(s);
for (i=L-1;i=0;i--) if (s[i]==' ')strcpy(s+i,s+i+1);
}
int main(){
char s[100];
printf("input 1 line string\n");
gets(s);
trim(s);
printf("%s\n",s);
return 0;
}
例如:
input 1 line string
abc 123 XYZ |
輸出:abc123XYZ|
C語言中,可以用gets函數(shù)來接收輸入的字符串(包含空格)。
格式:gets(字符數(shù)組名);
功能:gets函數(shù)用于將輸入的字符串內(nèi)容存放到指定的字符數(shù)組中,輸入結(jié)尾的換行符'\n'被換成'\0'存儲(chǔ)在該數(shù)組中。
舉例說明如下:
char?str[20];??//?定義一個(gè)字符數(shù)組,大小為20個(gè)字節(jié)
gets(str);?????//?將用戶輸入的字符串(可以包含空格)存儲(chǔ)到字符數(shù)組str中,以回車結(jié)束輸入
printf("%s",?str);??//?輸出用戶輸入的字符串(包含空格)
注:使用gets函數(shù)時(shí),需將頭文件#includestdio.h包含到源文件中。