c语言中统计字符串中各个字符的个数?
2个回答
展开全部
原发布者:zlaikai1314
#include#include#include#includeusingnamespacestd;chara[100];//字符数组intb[100];//字符个数doublep_a[100];//字符概率数组intsum=0;//字符总数//判断当前字符temp是否已出现过boolsearch(chartemp,chara[],intm,intn)//m为数组a的元素总个数,即100;n为当前数组a中存放的字符种类的个数{inti=0;while(i<n){if(a[i]==temp)returntrue;elsei++;}returnfalse;}//求各个字符的个数,放在数组b中voidread_file(stringfile_name="test_data.txt"){intk=0;ifstreamfile(file_name.c_str());//将string转化为char数组chartemp;if(file.is_open()==true)//检查文件是否打开{while(file.peek()!=EOF)//从文件中读取一个字符,但该字符并未从输入流中删除{file.get(temp);//从文件读入一个字符并把它存储在tempsum++;//统计出现的字符总数if(search(temp,a,100,k)){for(inti=0;i<k;i++){if(temp==a[i]){b[i]++;break;}}}else
#include#include#include#includeusingnamespacestd;chara[100];//字符数组intb[100];//字符个数doublep_a[100];//字符概率数组intsum=0;//字符总数//判断当前字符temp是否已出现过boolsearch(chartemp,chara[],intm,intn)//m为数组a的元素总个数,即100;n为当前数组a中存放的字符种类的个数{inti=0;while(i<n){if(a[i]==temp)returntrue;elsei++;}returnfalse;}//求各个字符的个数,放在数组b中voidread_file(stringfile_name="test_data.txt"){intk=0;ifstreamfile(file_name.c_str());//将string转化为char数组chartemp;if(file.is_open()==true)//检查文件是否打开{while(file.peek()!=EOF)//从文件中读取一个字符,但该字符并未从输入流中删除{file.get(temp);//从文件读入一个字符并把它存储在tempsum++;//统计出现的字符总数if(search(temp,a,100,k)){for(inti=0;i<k;i++){if(temp==a[i]){b[i]++;break;}}}else
展开全部
//计算字符串中相同字符的个数
#include
"stdio.h"
#include
"string.h"
int
count_str_same(char
*
p,char
ch);
int
main()
{
int
same_ch;
char
a[100];
char
c;
printf("请输入字符串:");
gets(a);
printf("请输入欲统计的重复字符:");
c
=
getchar();
same_ch
=
count_str_same(a,c);
printf("该字符串中字符%c重复%d次\n",c,same_ch);
return
0;
}
int
count_str_same(char
*
p,char
ch)
{
char
*
q
=
p;
int
m
=
0;
while(*
q
!=
'\0')
{
if(ch
==
*
q)
m++;
q++;
}
return
m;
}
#include
"stdio.h"
#include
"string.h"
int
count_str_same(char
*
p,char
ch);
int
main()
{
int
same_ch;
char
a[100];
char
c;
printf("请输入字符串:");
gets(a);
printf("请输入欲统计的重复字符:");
c
=
getchar();
same_ch
=
count_str_same(a,c);
printf("该字符串中字符%c重复%d次\n",c,same_ch);
return
0;
}
int
count_str_same(char
*
p,char
ch)
{
char
*
q
=
p;
int
m
=
0;
while(*
q
!=
'\0')
{
if(ch
==
*
q)
m++;
q++;
}
return
m;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询