求解一道C语言题。。

如图
2025-02-23 09:24:16
推荐回答(5个)
回答1:

//AAACTCACATTCCACCTACTTTCACT
//ACT
//1234223432344234
//234
//AAACACAAACCCACAC
//ACT
//AAACACAAACCCACACT
//ACT
//AAAAAAAAA
//AAA
#include
#include
char str1[1024],str2[1024];
int main()
{
int n=0;
char *pt;
gets(str1);
gets(str2);
pt=str1;
while(pt&&(pt=strstr(pt,str2)))
{
printf("p=%d\n",pt-str1+1);
pt++;
n++;
}
printf("%d\n",n);
return 0;
}

回答2:

不考虑性能优化,只考虑功能可以这么写:
#include "stdio.h"
#include "string.h"
#define MAX_STR_LEN 128
int main()
{
int i,j,m = 0;
int count = 0;
char str1[MAX_STR_LEN] = {0x00};
char str2[MAX_STR_LEN] = {0x00};
scanf("%s %s",str1, str2);
for(i = 0; i < strlen(str1); i++)
{

for(j = 0, m = 0; j< strlen(str2); j++)
{
if(str1[i + m] == str2[j])
{
m++;
}
else
break;
}
if(m == strlen(str2))
{
printf("p = %d\n", i+1);
count++;
}
}

printf("%d\n", count);
return 0;
}

回答3:

字符查找功能,去看下strstr函数的源码。

回答4:

回答5:

⋯⋯⋯⋯⋯⋯⋯…⋯