它的作用是:若str2是str1的子串,则返回str2在str1的首次出现的地址;如果str2不是str1的子串,则返回NULL。 下面,请你设计算法简单实现函数strstr(),若存在返回子串首次出现的下标(从0开始),若不存在返回-1。
时间: 2024-05-12 12:18:11 浏览: 4
好的,我能够帮你设计算法简单实现函数strstr()。以下是我的实现:
```C++
int strstr(const char* str1, const char* str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
if (len2 == 0) {
return 0;
}
for (int i = 0; i < len1; i++) {
if (str1[i] == str2[0]) {
int j;
for (j = 0; j < len2 && i + j < len1; j++) {
if (str1[i + j] != str2[j]) {
break;
}
}
if (j == len2) {
return i;
}
}
}
return -1;
}
```
这里我使用了双重循环,首先第一个循环遍历整个字符串 str1,第二个循环则对于每个位置 i,在 str1 中检查是否存在 str2 作为子串。如果在 str1 中找到了 str2,就返回 str2 在 str1 中第一次出现的下标。如果 str2 不是 str1 的子串,则返回 -1。
希望我的答案对你有所帮助。如果你还有其他问题,欢迎继续问我。