当前位置:首页 » 编程语言 » c语言字符串出现次数

c语言字符串出现次数

发布时间: 2025-05-09 16:35:19

c语言编程统计字符串s在字符串str中出现的次数

以下是 C 语言实现统计字符串 s 在字符串 str 中出现的次数的程序:

```c
#include <stdio.h>
#include <string.h>

// 统计字符串 s 在字符串 str 中出现的次数
int countSubstring(char str[], char s[]) {
int n = strlen(str); // 获取字符串 str 的长度
int m = strlen(s); // 获取字符串 s 的长度
int count = 0; // 计数器,初始化为 0

for (int i = 0; i <= n - m; i++) {
// 检查字符串 str 中以 i 开头、长度为 m 的子串是否等于 s
if (strncmp(str + i, s, m) == 0) {
count++; // 如果相等,则计数器加 1
}
}

return count;
}

int main() {
char str[100], s[100];
printf("请输入两个字符串:");
scanf("%s%s", str, s);

int count = countSubstring(str, s);
printf("%s 在 %s 中出现的次数是:%d\n", s, str, count);

return 0;
}
```

在上述代码中,我们首先定义了一个 `countSubstring()` 函数,该函数接受两个字符串作为参数,并返回字符串 `s` 在字符铅唤串 `str` 中出现的次数。在函数内部,我们使用一个循环依次检查 `str` 中每个长度为 `m` 的子串是否等于 `s`,如果相等,则计数器加 1。需要注意的是,在比较子串是否相等时,我肢激毁们历备使用了 `strncmp()` 函数,它可以指定要比较的字符数,避免了因为字符串长度不同而导致的错误。

在 `main()` 函数中,我们首先使用 `scanf()` 函数获取用户输入的两个字符串,并将其保存到字符数组 `str` 和 `s` 中。然后,我们调用 `countSubstring()` 函数,并传入两个字符串作为参数,以获取字符串 `s` 在字符串 `str` 中出现的次数。最后,我们输出结果到控制台中。

需要注意的是,在实际应用中,可能需要对用户输入进行验证和处理,以确保程序的健壮性和安全性。另外,也可以使用其他方法(如标准库函数)来实现统计字符串出现次数的算法

❷ C语言 输入一个字符串(包含空格),统计每个字符出现的次数和总数(包含空格的次数),并且找出

#include <stdio.h>

int main()

{

unsigned char s[200],a[128]={0},i;

int max=0,maxc;

gets(s);

for(i=0;s[i];i++)

{

a[s[i]]++;

if(a[s[i]]>max)

{

max=a[s[i]];

maxc=s[i];

}

}

for(i=0;i<127;i++)

if(a[i]>0)printf("%c: %d ",i,a[i]);

printf("max:%c--%d times. ",maxc,a[maxc]);

system("pause");

return 0;

}

❸ 用C语言编程:在显示器上输入一段字符串,并统计出现字符的个数和各个字符出现的次数

#include <stdio.h>
void main()
{
char c;
int i,letters=0,num[26]={0}; //字符的个数, 26个字符个数初始化为0
printf("请输入一段字符串:\n");
while((c=getchar())!='\n')
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
{
letters++;
if(c>='a'&&c<='z') num[c-'a']++;
if(c>='A'&&c<='Z') num[c-'A']++;
}
}
printf("字符的个数:%d\n",letters);
printf("每个字符出现的次数:\n");
for(i=0;i<26;i++)
{
if(num[i]>0)
printf("字符%c:%d次 ",i+'a',num[i]);
}
}

❹ c语言统计字符串中每个字符出现的次数

#include&lt;stdio.h&gt;

#include&lt;stdlib.h&gt;

int findsub(char*src,char*s)

{

char*ptr=src,*p=s;//定义两个指针

char*ptr2=src+strlen(src),*prev=NULL;//ptr2为src的末位置指针

int len=strlen(s),n=0;//子串的长度和计数器

for(;*ptr;ptr++)//循环整个串

{

if(ptr2-ptr&lt;len)//如果一开始子串就大于src,则退出

break;

for(prev=ptr;*prev==*p;prev++,p++)//寻找第一个相等的位置,然后从此位置开始匹配子串

{

if(*(p+1)==0||*(p+1)==10)//如果已经到了子串的末尾

{

n++;//自增

p=s;//重新指向子串

break;//退出

}

}

}

return n;

}

int main(void)

{

char a[81],b[81];//定义两个字符数组

printf("输入原字符串:");

fgets(a,81,stdin);//输入

printf("输入子字符串:");

fgets(b,81,stdin);

printf("找到:%d ",findsub(a,b));

system("pause");

return 0;

}

(4)c语言字符串出现次数扩展阅读:

①printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。

格式输出,它是c语言中产生格式化输出的函数(在stdio.h中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。

要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

简单点理解就是,在一段程序中你正确使用该函数,可以在该程序运行的时候输出你所需要的内容。

②printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。

printf()函数的调用格式为:printf("&lt;格式化字符串&gt;",&lt;参量表&gt;)。

其中格式化字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。

热点内容
出轨数据库 发布:2025-05-09 22:48:47 浏览:148
java过滤器的作用 发布:2025-05-09 22:44:06 浏览:857
定投策略算法 发布:2025-05-09 22:21:36 浏览:601
梯形纠正算法 发布:2025-05-09 22:16:46 浏览:717
解压心跳声 发布:2025-05-09 22:16:10 浏览:718
如何取消安卓手机程序隐私密码 发布:2025-05-09 21:48:03 浏览:48
c语言字符串数组连接 发布:2025-05-09 21:46:37 浏览:133
源码的移码 发布:2025-05-09 21:25:01 浏览:754
ie内核缓存 发布:2025-05-09 21:19:35 浏览:545
第五人格服务器错误是怎么解决 发布:2025-05-09 21:14:24 浏览:513