)编写一个程序,用来从字符串str中找出指定子串substr在该字符串中第一次出现的位

2024-11-30 19:15:30
推荐回答(2个)
回答1:

① 如果是C,直接就是strstr这个函数;如果是C++,手段很多, 最直接就是string,然后substr就可以;
② 如果是让你自己写一个C程序来实现strstr的功能,那么
int my_strstr(const char *s1, const char *s2)
{
int retcode = -1;
int pos = 0;
size_t n;

if (s1 == NULL)
return -2;

if (s2 == NULL)
return -3;

n = strlen(s2);
while(*s1)
if(!memcmp(s1++,s2,n))
{
retcode = pos;
break;
}
else
pos++;

return retcode;
}

测试程序:
#include
#include
#include

int my_strstr(const char *s1, const char *s2);

int main(int argc, char *argv[])
{
char str1[] = "abcde123\0";
char str2[] = "e1\0";
int pos;

pos = my_strstr(str1, str2);
printf("pos = %d\n", pos);

return 0;
}

输出: pos = 4 (基于0)

回答2:

strstr函数就是用来干这个的呀