C语言程序设计,用户输入一个字符串,一个字符,统计该字符在字符串中出现的次数。写出程序,加急

按照那个回答... 按照那个回答 展开
 我来答
匿名用户
2021-04-29
展开全部
#include<stdio.h>
main()
{char s[99],c;
int i=0,n=0;
printf("输入字符串(按Enter结束):\n");
gets(s);
printf("输入字符(按Enter结束):");
c=getchar();
for(i=0;i<99;i++)
{if(c==s[i])
n++;
}
printf("字符串%s中字符%c出现%d次",s,c,n);
}
//看时间,你是用不到了,留个要学习的看吧。(字符串中可能有空格,所有不要用scanf函数for循环获取)
DoramiHe
2018-04-03 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59541
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
举例说明:
string str="asdas";//定义字符串str并赋值;
问题:统计字符串str中重复字符出现的次数?
结果:字符a出现2次;
字符s出现2次;
字符d出现1次;
方法:
建立Dictionary泛型 集合;
实例化对象(根据例子) :Dictionary dic = new Dictionary();
//个人理解与c语言中的结构体差不多,Dictionary即为结构体,dic结构体类名,其中type即为数据的类型,这里int代表出现次数为整型,char代表字符(仅代表个人理解)。
判断泛型集合中是否包含该字符,如果不包含,则将其加入集合,并将其对应的初值赋值为1;如果包含,则将集合类该字符所对应的值加1,直到判断结束。
遍历泛型集合。
具体的详细代码:
static void Main(string[] args)
{
string str = Console.ReadLine();
Dictionary dic = new Dictionary();
for (int i = 0; i < str.Length; i++)//遍历字符串
{
if (!dic.ContainsKey(str[i]))//判断集合中是否包含此字符
{
dic.Add(str[i], 1);//如果不包含,将其加入集合,并将其对应的初值赋值为1
}
else
{
dic[str[i]]++;//如果包含,则将集合类该字符所对应的值加1
}
}
foreach (KeyValuePair a in dic)//遍历集合
{
Console.WriteLine("字符 {0} 出现次数为:{1}。", a.Key, a.Value);
}
Console.Read();
}
其实,这里最重要的就是理解Dictionary泛型 集合的用法;
如有错误的地方,希望大家指出来。共同交流和学习。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式