c語言輸入回車結束輸入
⑴ c語言怎樣才能輸入一行字元,以回車作為結束標志,分別統計出大寫字母,小寫字母,空格,數字和其他字元
C代碼和運行結果如下:
統計結果正確,望採納~
附源碼:
#include <stdio.h>
int main() {
char s[100];
fgets(s, 100, stdin); // 輸入一行字元,包括行尾的' '
int i = 0, upper = 0, lower = 0, space = 0, digit = 0, other = 0;
while (s[i] != ' ') {
if (s[i] >= 'A' && s[i] <= 'Z')
upper++;
else if (s[i] >= 'a' && s[i] <= 'z')
lower++;
else if (s[i] == ' ')
space++;
else if (s[i] >= '0' && s[i] <= '9')
digit++;
else
other++;
i++;
}
printf("大寫字母:%d, 小寫字母:%d, 空格:%d, 數字:%d, 其他:%d ",
upper, lower, space, digit, other);
return 0;
}
⑵ c語言輸入一個以回車結束的字元串,將其中第一次出現的連續的數字字元轉換為整數,遇到非數字字元停止
#include <stdio.h>
void convert(char str[],int *dp)
{
sscanf(str,"%*[^0-9]%d",dp);
}
int main()
{
char s[100];
int d;
scanf("%s",s);
convert(s,&d);
printf("%d",d);
return 0;
}
⑶ C語言如何做到回車停止輸入
呵呵,這個問題我也想過,想出了一個不怎麼成熟的辦法。
#include<stdio.h>
void
main()
{
int
a[100],num=0;
char
k;
do
{
scanf("%d",&a[num]);
num++;
k=getchar();
}while(k!='\n'&&num<100);
}
這樣以空格隔開各個數字,輸入若干以後按回車即可。
但是容錯性不好,如果結尾在按回車前多輸入了一個空格,那麼將繼續循環。
如果提升了容錯性,那麼代碼將變得比較復雜。
⑷ C語言,如何輸入一個以回車結束的字元串
庫函數fgets把' '作為結束命令,同時也當作一個字元存儲到目標空間里,並在其後加一個'