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
展开
 我来答
lgao622
推荐于2017-10-12 · 知道合伙人软件行家
lgao622
知道合伙人软件行家
采纳数:1137 获赞数:6548
毕业于武汉工程大学邮电与信息工程学院通信专业,软件行业,4年工作经验。

向TA提问 私信TA
展开全部

只需要字符没到 '\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;
}

Crystal_FD
推荐于2017-09-12 · TA获得超过1717个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:104万
展开全部
楼主您好 很高兴为您解答~

这道题的形式很类似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;
}

这回没有问题了~~ !
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友83cdc1c
2013-04-26 · TA获得超过5788个赞
知道大有可为答主
回答量:1907
采纳率:100%
帮助的人:813万
展开全部
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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式