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把' '作为结束命令,同时也当作一个字符存储到目标空间里,并在其后加一个'