gpt4 book ai didi

c - 使用strstr时如何表示 "if substring present in string do something"?

转载 作者:太空宇宙 更新时间:2023-11-04 04:33:54 25 4
gpt4 key购买 nike

我正在尝试编写一个非常简单的程序,它接受一串字符(氨基酸或核酸)并检查子字符串出现了多少次并输出结果。

但是,我不知道如何在 while if 循环中声明仅在匹配时才加 1 并在到达行尾时停止。由于 strstr 的输出是指向匹配位置的指针,我不知道如何将字符串等价表示为 if() 的逻辑条件。

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

int main(){

int j,count;
char *i,dna_seq[50], desired_seq[3]="AT";



while(1){

printf("\nPlease insert protein sequence:\n");
gets(dna_seq);

printf("\nPlease insert searched sequence:\n");
gets(desired_seq);

while(1){
strstr(dna_seq,desired_seq);
if(//**answer**//);
count++;
dna_seq[j]++;
if(i=='\0') break;
}

printf("\n\nOccurance of %s: %d times\n",desired_seq,count);
}

}

另外,您会为调试编写什么(因为我正在尝试练习)?

预先感谢您的帮助,如果问题没有明确提出,我们深表歉意。

最佳答案

strstr 返回指向您要查找的字符串出现的指针,如果不存在则返回 NULL。所以你应该循环直到你得到 NULL,每次你得到一个有效的指针,递增计数器,并从它后面开始查找:

char* loc = NULL;
while (loc = strstr(prot_seq,desired_seq)) {
count++;
loc++;
}

关于c - 使用strstr时如何表示 "if substring present in string do something"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33189478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com