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

按照那个回答

#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循环获取)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-04-03
举例说明:
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泛型 集合的用法;
如有错误的地方,希望大家指出来。共同交流和学习。本回答被网友采纳