急求。。。C语言实现,计算字符串中子串出现的次数,比如输入GACTC,要求输出GA,AC,CT,TC出现的次数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了急求。。。C语言实现,计算字符串中子串出现的次数,比如输入GACTC,要求输出GA,AC,CT,TC出现的次数相关的知识,希望对你有一定的参考价值。

后面的子字符串是不用输入的

参考技术A #include <stdio.h>

#include <string.h>

int main(int argc, const char * argv[])



char str[10]="ABCABCABD";

char str1[5]="ABCA";

for (int i=0; i<strlen(str1)-1; i++)

char str2[3];

str2[0]=str1[i];

str2[1]=str1[i+1];

int strCount=0;

for (int j=0; j<strlen(str)-1; j++)

char str3[3];

str3[0]=str[j];

str3[1]=str[j+1];

if (strcmp(str2, str3)==0)

strCount++;





printf("子字符串:%s在字符串中含有%d个\n",str2,strCount);



return 0;


子字符串:AB在字符串中含有3个

子字符串:BC在字符串中含有2个

子字符串:CA在字符串中含有2个追问

哥们,程序报错了

追答

什么错误?我这可以正确运行。。

追问

只输入一个字符串,假如输入字符串GBAGGABGAB
输出结果为:GB为1个
BA为1个
AG为1个
GG为1个
GA为2个
AB为2个
BG为1个

追答

您把您说的出现问题的两个字符串贴一下吧 。

本回答被提问者采纳
参考技术B 子串就是根据你输入的字符串自动计算获得的吧,然后统计出现次数、打印输出。
可以帮你做。追问

嗯,是的,但要是相邻的两个字符

追答

那如果你输入的字符串不是偶数的话,这种情况如何处理?

追问

假如输入GATCG五个字符,输出的结果就是GA一个,AT一个,TC一个,CG一个

参考技术C 是计算字符串所有子串的次数,还是指定子串的次数,说明一下追问

不是指定的,但是是相邻的

追答

今天有点忙

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


int main(void)
    char buf[100]=;
    char sub_buf[100][3];
    char numb_buf[100]=;

    char* first_p=NULL;
    char* next_p=NULL;
    int exit_flag=0,i=0;
    
    memset(sub_buf,0,sizeof(sub_buf));

    printf("input:");
    scanf("%s",buf);
    first_p=buf;
    while(*(first_p+1)!='\\0')
         exit_flag=0;
         i=0;
        char temp_buf[3]=;
        temp_buf[0]=*first_p;
        temp_buf[1]=*(++first_p);
        while(strlen(sub_buf[i]))
            if(!strcmp(sub_buf[i],temp_buf))
                numb_buf[i]++;
                exit_flag=1;
            
            i++;
        
        if(exit_flag==0)
            strcpy(sub_buf[i],temp_buf);
        
    
    for(i=0;strlen(sub_buf[i]);i++)
        printf("%s: %d\\n",sub_buf[i],numb_buf[i]+1);

    
    

运行结果
input:asdfghjkasfgjk
as: 2
sd: 1
df: 1
fg: 2
gh: 1
hj: 1
jk: 2
ka: 1
sf: 1
gj: 1
-------------------------------
input:qwertyuiwetyty
qw: 1
we: 2
er: 1
rt: 1
ty: 3
yu: 1
ui: 1
iw: 1
et: 1
yt: 1

有问题请追问

以上是关于急求。。。C语言实现,计算字符串中子串出现的次数,比如输入GACTC,要求输出GA,AC,CT,TC出现的次数的主要内容,如果未能解决你的问题,请参考以下文章

C语言 计算字符串中子串出现的次数 求更改

C语言课程设计题目计算字符串中子串出现的次数

C语言试题159之计算字符串中子串出现的次数

C语言问题计算字符串中子串出现的次数。要求:用一个子函数subString()实现,参数为指向字符串

计算字符串中子串出现的次数。

用函数编程实现计算字符串中子串出现的次数,这个程序不知道错哪了