C语言实现:统计字符串中字符出现频率详解
c语言统计字符串中每个字符出现的次数
#include
#include
intfindsub(char*src,char*s)
{
char*ptr=src,*p=s;//定义两个指针
char*ptr2=src+strlen(src),*prev=NULL;//ptr2为最后一个src的位置指针
intlen=strlen(s),n=0;//子串的长度和计数
for(;*ptr;ptr++)//循环整个字符串
{
if(ptr2-ptr break; for(prev=ptr;*prev==*p;prev++,p++)//找到第一个相等的位置,然后从该位置开始匹配子串 { if(*(p+1)==0||*(p+1)==10)//当到达子串末尾时is { n++;//自增 p=s;//新引用子串 break;//退出 } } } returnn; } intmain(void) { chara[81],b[81];//定义两个字符数组 printf("请输入原始字符串:"); fgets(a,81,stdin);//输入 printf("输入子字符串:"); fgets(b,81,stdin); printf("找到:%d\n",findsub(a,b)); system("pause"); return0; } ①printf()函数是一个格式化输出函数,一般用于输出特定格式的信息格式用于标准输出设备。 FormatOutput,C语言中的一个函数,用于生成格式化输出(在stdio.h中定义)。 要输出的文本除了字母、数字、空格和一些数字符号外,还可以使用一些转义字符来表达特殊含义。 简单的理解就是,如果在程序中正确使用这个函数,那么程序运行时就可以输出你需要的内容。 ②printf函数是标准库函数,其函数原型位于头文件“stdio.h”中。 printf()函数的调用格式为:printf("<格式字符串>",<参数表>)。 格式字符串用于指定输出格式。
用于向终端(监视器、控制台等)输出字符。
格式控件由要输出的文本和数据格式的描述组成。
但是,作为特殊情况,在使用printf函数之前不需要包含stdio.h文件。
格式控制字符串可以由格式字符串和非格式字符串组成。用C语言编写一个程序,输入一个字符串,统计其中各个字符出现的次数
要编写一个C语言程序来统计输入字符串中每个字符出现的次数,可以参考以下代码片段:首先,包含必要的头文件:c#include"pch.h"#include#include//for确定字符类型。
接下来,我们定义main函数并初始化计数器变量。
cintmain(){charc;intnum_count=0,//数字个数h3alp_count=0,//大写字母个数Littlealp_count=0,//小写字母个数emp_count=0,//空格个数els_count=0;//其他字符数while((c=getchar())!='\n'){//读取输入最多换行符//确定字符类型和计数更新。
if((c>='0'&&c<='9')){num_count++;}elseif((c>='a'&&c<='z')){littlealp_count++;}elseif((c>='A'&&c<='Z')){h3alp_count++;}elseif(c==''){emp_count++;}else{els_count++;}}最后打印统计结果。
cprintf("数字个数:%d\n小写字母个数:%d\n大写字母个数:%d\n",num_count,littlealp_count,h3alp_count);printf("空格个数:%d\n其他个数字符:%d\n",emp_count,els_count);return0;}该程序遍历输入字符串,根据字符的ASCII值确定类型,并生成数一下次数。
为了进一步优化,您可以使用“ctype.h”库中的“isspace()”函数来检查空白字符。
示例:c#include...while(*p){if(*p>='0'&&*p<='9'){num_count++;}elseif(isspace(*p)){space_count++;}else{other_count++;}p++;}这样可以让我们简化判断条件。
当您运行该程序时,它将输出字符串中特定数量的数字、字母、空格和其他字符。