输入一个以回车符结束的字符串(少于80个字符),统计其中数字字符的个数。C语言

在线等,挺急的,最好配上汉字解释- -,写了

int i = 0,count = 0;//i用作循环累加变量,count记录其中的数字字符个数
char str[80] = "\0";//定义一个字符串,并把这个字符串清空
scanf("%s",str);//让用户输入一串字符,scanf函数会默认以回车作为结束符
for( i=0;i<80&&str[i]!='\0';i++ )//开始循环判断,循环条件是下标i在0~79的范围内,并且字符串中还有内容
{
if( str[i]>='0' && str[i]<='9' )//如果是数字字符

{
count++;//满足条件则计数值加一

}

}
printf("count = %d\n",count);//把记录结果输出
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-06-14
#include<stdio.h>

int main()
{
    char c;
    int count = 0;
    while((c = getchar()) != '\n')
    {
        ++count;
    }
    
    printf("%d\n",count);
    return 0;
}

第2个回答  2013-02-02
前面的正则表达式法经典哦!
我来个C语言版的:

#include <stdio.h>

int main()
{
char str[85], *it_ptr;
int uppc_count = 0;
scanf("%s", str);
for (it_ptr = str; *it_ptr != '\0'; ++it_ptr)
if (*it_ptr >= 'A' && *it_ptr <= 'Z') ++uppc_count;

printf("Uppercase letter count: %d\n", uppc_count);

return 0;
}
第3个回答  2014-11-30
#include<stdio.h>
#include<string.h>

int main()
{
char str[100];
int len,i,sum=0;
gets(str);
len=strlen(str);
for(i=0;i<len;i++)
if(str[i]>='0'&&str[i]<='9')
sum++;
printf("%d\n",sum);
return 0;
}本回答被网友采纳
第4个回答  2013-01-29
string str = "ABcEFGcv";
int Ucount = str.Length - Regex.Replace(str, @"[A-Z]", "").Length; //大写字母个数。
Console.WriteLine(Ucount.ToString());
Console.ReadKey();
跟这个类似的
相似回答