C语言 C++数字字符串
问题描述:
任务描述
题目描述:对于给定的一个字符串,统计其中数字字符出现的次数。
相关知识(略)
编程要求
请仔细阅读下面代码,结合相关知识,在Begin-End区域内进行代码补充。 输入 输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。 输出 对于每个测试实例,输出该串中数值的个数,每个输出占一行。、
测试说明
样例输入: 2 asdfasdf123123asdfasdf asdf111111111asdfasdfasdf 样例输出: 6 9
#include<stdio.h>
int main(void)
{
/Begin/
/End*/
return 0;
}
答
#include<stdio.h>
#include<string.h>
int main()
{ int n,count,i,k;
char a[500];
scanf("%d",&n);
while(n--)
{
count=0;
scanf("%s",&a);
k=strlen(a);
for(i=0;i<k;i++)
if(a[i]<'A')
count++;
printf("%d\n",count);
}
}
答
一个简单的实现:
#include <stdio.h>
int main(void){
int num; //定义存放几个数据行的变量
scanf("%d",&num); //获取存放几行数据
char str[50]; //定义存放数字字母的字符串,最大50个字符
int n[num]; //定义每个数据行有几个数字的数组变量
//初始化这个数组变量
for(int i=0;i<num;i++){
n[i] = 0;
}
int k = 0; //每个数据行有几个数字的数组访问下标变量
for(int i=0;i<num;i++){ //循环读取所需行数据
scanf("%s",str); //读取数字字母字符串到变量str
int j = 0; //访问读取到的数字字母字符串str的访问下标变量
while(str[j]!='\0'){ //如果这个字符串str没有访问到结尾,就执行下面的数字寻找操作
//如果在字符串str找到了数字 ,就把数字数量数组响应位置的数量+1
if(str[j]>='0'&&str[j]<='9'){
n[k]++;
}
j++; //访问str字符串下一个字符
}
k++; //开始下一轮字符串读取操作
}
//打印数字数量数组
for(int i=0;i<num;i++){
printf("%d\n",n[i]);
}
return 0;
}