我在C中有一个问题,我必须找到一个字符串中每个字符的出现次数。假设我有像“amitamt”这样的字符串,输出应该像“a2m2it2”。我有一个例程,我可以找到它没有出现特定的角色。
int count_chars(const char* string, char ch)
{
int count = 0;
int i;
int length = strlen(string);
for (i = 0; i < length; i++)
{
if (string[i] == ch)
{
count++;
}
}
return count;
}
但我不知道如何计算字符串的每个字符
答案 0 :(得分:4)
如果您有一个ASCII字符串,请创建一个大小为256的int数组。然后遍历该字符串并增加位置x上的int数组中的值。虽然x是字符串中字符的ASCII值,但是你正在循环。
答案 1 :(得分:1)
如果我有任何错误,如语法请原谅我正在研究vb,我无法弄清楚在哪里放括号或括号,
我相信strchr让你的工作更轻松
#include <stdio.h>
#include <string.h>
int str_occ (char *pch ,char a)
{
int i = 0;
char *p;
p=strchr(pch,a);
while (p!=NULL)
{
i = i+1;
p = strchr(p+1,a);
}
return i;
}
要解释代码* pch是您必须传递的字符串,char a是您要搜索的字母,以查找其发生的次数和int i返回的出现次数值
说样品
int main()
{
char a[]="hello world";
int i;
i=str_occ(a,'l');
printf("%d",i);
}
output is 3
您可以根据自己的要求制作代码,将函数保持在循环中,我的意思是旋转元素