c语言 统计一个字符串相同字符的个数
问题如下:给一串字符串,统计其中某个字符的个数。Input首先输入一个整数T,表示一共有T组数据0<T<=10。接下来每行一个字母x(x为'a'-'z'或者‘A’-'Z'...
问题如下:
给一串字符串,统计其中某个字符的个数。
Input
首先输入一个整数T,表示一共有T组数据0<T<=10。
接下来每行一个字母x(x为'a'-'z'或者‘A’-'Z')。
然后下面一行输入一个字符串s(0<s的长度<1000)。
Output
统计这个字母在这个字符串中出现的次数。
Sample Input
2
a
absd
b
bbssb
Sample Output
1
3 展开
给一串字符串,统计其中某个字符的个数。
Input
首先输入一个整数T,表示一共有T组数据0<T<=10。
接下来每行一个字母x(x为'a'-'z'或者‘A’-'Z')。
然后下面一行输入一个字符串s(0<s的长度<1000)。
Output
统计这个字母在这个字符串中出现的次数。
Sample Input
2
a
absd
b
bbssb
Sample Output
1
3 展开
推荐于2017-10-12 · 知道合伙人软件行家
关注
展开全部
只需要字符没到 '\0' ,遇到所要统计的字符,就进行累计。到 '\0' 结束后,就可以知道字符的个数了。
int strCnt(const char* src, char ch = ' ')
{
int i = -1, cnt = 0;
while (src[++i]) // 字符没到 '\0' 就继续
if (src[i] == ch) // 相同则累计
++cnt;
return cnt;
}
int main()
{
char* p = "124515414154815";
printf("string has %d '%c'.\n", strCnt(p, '1'), '1');
return 0;
}
展开全部
楼主您好 很高兴为您解答~
这道题的形式很类似ACM试题 代码如下~!
#include <stdio.h>
#include <stdlib.h>
int main()
{
int t,n;
int i,j;
char c,d;
char str[1000];
scanf("%d",&t);
for(i=0;i<t;i++)
{
n=0;
scanf("%c",&c);
getchar();
scanf("%s",&str);
getchar();
for(j=0;str[j]!='\0';j++)
{
if(str[j]==c)
{
n++;
}
}
printf("%d\n",n);
}
//system("pause");
return 0;
}
希望采纳~!
这道题的形式很类似ACM试题 代码如下~!
#include <stdio.h>
#include <stdlib.h>
int main()
{
int t,n;
int i,j;
char c,d;
char str[1000];
scanf("%d",&t);
for(i=0;i<t;i++)
{
n=0;
scanf("%c",&c);
getchar();
scanf("%s",&str);
getchar();
for(j=0;str[j]!='\0';j++)
{
if(str[j]==c)
{
n++;
}
}
printf("%d\n",n);
}
//system("pause");
return 0;
}
希望采纳~!
追问
第一次 n总是为0 你检查下
追答
#include
#include
int main()
{
int t,n;
int i,j;
char c,d;
char str[1000];
scanf("%d",&t);
for(i=0;i<t;i++)
{
n=0;
scanf("%c",&c);
scanf("%c");
scanf("%s",&str);
printf("%c---%s\n",c,str);
for(j=0;str[j]!='\0';j++)
{
if(str[j]==c)
{
n++;
}
}
printf("%d\n",n);
}
//system("pause");
return 0;
}
这回没有问题了~~ !
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int main()
{
int i, j, T;
char c, s[1000];
int cnt[T];
scanf("%d", T);
for(i=0;i<T;i++)
{
cnt[i]=0;
scanf("%c", &c);
scanf("%s", s);
for(j=0;*(s+j)!='\0'; j++)
{
if(c==*(s+j))
cnt[i] = cnt[i]+1;
}
}
for(i=0;i<T;i++)
printf("%d\n", cnt[i]);
return 0;
}
{
int i, j, T;
char c, s[1000];
int cnt[T];
scanf("%d", T);
for(i=0;i<T;i++)
{
cnt[i]=0;
scanf("%c", &c);
scanf("%s", s);
for(j=0;*(s+j)!='\0'; j++)
{
if(c==*(s+j))
cnt[i] = cnt[i]+1;
}
}
for(i=0;i<T;i++)
printf("%d\n", cnt[i]);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询