當前位置:首頁 » 編程語言 » c語言怎樣從鍵盤輸入一句話
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言怎樣從鍵盤輸入一句話

發布時間: 2022-06-17 15:49:47

c語言中怎麼輸入帶標點符號的一句話

在scanf的%c前面加個空格就好了

改成這樣就解決了scanf(" %c",&c);

具體錯誤解釋是這樣的:

因為回車鍵的ASC2字元是'\r' ,也就是0x0d,他相當於一個char型字元。

在scanf接收數據的時候,你輸入的是:y(打個比方,一個字元),然後按下回車鍵

此時相當於你在鍵盤中輸入的是倆個字元,'y』和'\r',這時如果你用%c接收,%c你應該很了解,是接收單個字元的,所以他會第一次接收'y』,第二次接收'\r',這也就是為什麼連續輸入字元%c前必須加上空格的道理,目的是防止前一個字元'\r'被下一個scanf誤當做字元接收了。

當然,你如果用%s接收,他只會接收回車之前的字元串,%s特性,通過回車判斷字元串輸入結束。
如果用%d接收,他只識別數字,%f同樣的道理。

舉個例子你寫個scanf("%s", &ch);scanf("%d", &ch);scanf("%f", &ch);然後什麼數據都不輸入,只按回車鍵,他是不會執行的,scanf下面的語句不會執行。就是我上面說的原因。

但是'\r'是一個字元,他當然會被%c接收,所以會造成誤判。

這么解釋總該明白吧。

⑵ c語言 怎麼輸入一句話,然後再輸出那句話 (高分)

#include<stdio.h>
#include<string.h>
void main()
{
char ser[256];//最多能輸入256個字元 如果想再多一點,可加大數組
int i=0;
int j=0;

char c;
printf("\t\t請輸入你要輸入一句話,輸入回車結束!\n\n");
while((c=getchar())!='\n')//以回車做為結標志
{
ser[i++]=c;
}
if(c=='\n')
ser[i]='\0';//把結束符賦給數組ser
printf("\n\n");
printf("你輸入的是-〉%s\n\n",ser);//單詞全列印出來了

}

⑶ C語言,從鍵盤輸入一句英文,不多於四十字,分別統計出大寫字母,小寫字母,其他字元的數量。

#include <stdio.h>
#include <string.h>
void shuru(char s[]) //輸入並鎖定長度
{
printf("請輸入字元串:\n");
gets(s);
int i=0;
if(i=strlen(s)>40)
{
printf("您輸入的長度超過40\n");
shuru(s);
}
}
void main()
{
char s[50]; //給50個長度
int i,dx,xx,qt;
dx=0; //初始大寫字母為0
xx=0; //初始小寫字母為0
qt=0; //初始其他字元為0
shuru(s);
for(i=0;i<strlen(s);i++)
{
if(s[i]<='z'&&s[i]>='a')
xx++;
else if
(s[i]<='Z'&&s[i]>='A')
dx++;
else
qt++;
}
printf("大寫字母%d個,小寫字母%d個,其他的字元%d個\n",dx,xx,qt);
}

⑷ c語言 如何從鍵盤輸入字元串

c語言從鍵盤輸入字元串的步驟如下:

1.首先我們新建一個dev C++的項目。

⑸ 在C語言中如何實現用鍵盤輸入一個字元串,並列印出來

在C語言中實現用鍵盤輸入一個字元串,並列印出來的解決方法如下:

1、首先定義一個字元串數組,如你可以給字元串100個數組空間。如圖括弧內數字即為你定義的數組大小。

(5)c語言怎樣從鍵盤輸入一句話擴展閱讀:

字元數組的輸出:

(1)用putchar()或printf()的『%c』格式符對數組進行字元賦值。例如,對於數組a[10]:用putchar()賦值:

for(i=0;i<10;i++)

a[i]=putchar();

用printf()賦值:

for(i=0;i<10;i++)

printf("%c",a[i]);

輸出結果為:

c program[2]

(2)用printf()的'%s'格式對數組賦值。還是對於數組a[10];

printf("%s",a);

輸出結果為:

c program

參考資料來源:

網路-char

網路-字元數組

⑹ c語言 如何達到輸入一句中文輸出指定的中文

C語言中,漢字是用字元串來存儲的,因為,漢字是多位元組組成(GBK字元集一個漢字占兩個位元組,UTF8字元集,一個漢字佔三個位元組),所以,標准C中,只能用字元串來存儲漢字數據。

可以採用字元串輸入函數來輸入中文。

判斷中文是不是指定數據,可以用strcmp()函數來進行比較

中文輸出,可用printf("%s")來輸出相應的數據。

參考代碼:

#include<stdio.h>
#include<string.h>
voidmain()
{
charstr[100];
printf("請輸入中文:");
scanf("%s",str);
if(strcmp(str,"你好")==0)//兩個字元串相等時,strcmp返回0
{
printf("我很好 ");
}
else
{
printf("你輸入的是:%s ",str);
}
}

運行結果:

請輸入中文: 你好

我很好


請輸入中文: 中國

你輸入的是:中國

⑺ c語言從鍵盤輸入一字元串

#include<stdio.h>

void print_num(char *str)
{
char string[20][20];
int i=0,num=0,new_num=0,counter=0;
while(*(str+i))//即*(str+i)!='\0'
{
if(*(str+i)>='0'&&*(str+i)<='9'&&new_num==0)
{
string[num][counter]=*(str+i);
counter++;
new_num=1;
}
else if(*(str+i)>='0'&&*(str+i)<='9'&&new_num==1)
{
string[num][counter]=*(str+i);
counter++;
}
else if((*(str+i)<'0'||*(str+i)>'9')&&new_num==1)
{
string[num][counter]='\0';
new_num=0;
num++;
counter=0;
}
else if((*(str+i)<'0'||*(str+i)>'9')&&new_num==0);
i++;
}
string[num][counter]='\0';
num=num+1;
printf("there are %d num.\nthere are:\n",num);
for(i=0;i<num;i++)
puts(string[i]);
}

int main()
{
char string[100],*str;
printf("Please enter a string:\n");
gets(string);
str=string;
print_num(str);
return 0;
}
至於每個整數*2,可以作為練習來做,可以好好看一下這個代碼,值得思考的

⑻ C語言編程,怎麼從鍵盤輸入一行字元,要求少於20個

#include<stdio.h>
int main()
{
int c[20];
printf("Please enter a character:");
while((c[20]=getchar())!='#')/*這里用c[20]等於將輸入的字元直接賦值給下標為20的哪個數組元素也就是說你的C[0]到c[19]都沒賦值,而且你要輸入的是20個元素而c[20]是第21個元素了, 再有就是while後面如果沒有其他語句就應該加一個 ; 符號表示執行一個空語句*/
if(c[20]>='a'&&c[20]<='z')
putchar(c[20]-'a'+'A');
else
putchar(c[20]);
printf("\n");
return 0;

}
#include<stdio.h>
int main()
{
int c[20];
int ch,i=0;
printf("Please enter a character:");
while((ch=getchar())!='#')
{
c[i]=ch;
i++;
}
if(c[20]>='a'&&c[20]<='z')
putchar(c[20]-'a'+'A');
else
putchar(c[20]);
printf("\n");
return 0;

}

⑼ 鍵盤C語言編程輸入程序

getchar函數(字元輸入函數)的作用是從終端輸入一個字元。用法
getchar()

char
a;a=getchar();//表示從鍵盤輸入一個字元,並把他賦值給字元變數a;
還可以用scanf
語句輸入數據。用法
scanf(格式控制,地址表列)
如int
a;
scanf("%d",&a);
scanf("%d%d%d",&a,&b,&c)
"%d%d%d"表示按十進制整數形式輸入三個數據。輸入數據時,在兩個數據之間以一個或多個空格間隔。
格式符
d表示輸入十進制整數、
s用來輸入字元串
f用來輸入小數(實數)
你應該會用了吧
如果不會
歡迎你和我聯系
很樂意為你服務

⑽ c語言,幫幫忙! 從鍵盤輸入一句話,要求統計出每個字元出現的次數。已知該字元串中只有英文字元與空格

#include<stdio.h>

intmain(){
inti,ch,number[26]={0};
while((ch=getchar())!=' '){
if(ch>='A'&&ch<='Z')++number[ch-'A'];
if(ch>='a'&&ch<='z')++number[ch-'a'];
}
for(i=0;i<26;++i)
if(number[i])printf("%c:%d ",i+'a',number[i]);
printf(" ");
return0;
}