用c语言用指针实现对给定字符串查找给定的子串并输出第一个子串所在的位置
时间: 2023-06-19 19:36:13 浏览: 283
C语言中查找字符在字符串中出现的位置的方法
可以使用指针来实现字符串查找,具体实现如下:
```c
#include <stdio.h>
#include <string.h>
int findSubstring(char *str, char *subStr) {
int len1 = strlen(str);
int len2 = strlen(subStr);
if (len1 < len2) {
return -1;
}
for (int i = 0; i <= len1 - len2; i++) {
int j = 0;
while (j < len2 && *(str + i + j) == *(subStr + j)) {
j++;
}
if (j == len2) {
return i;
}
}
return -1;
}
int main() {
char str[100] = "hello world";
char subStr[10] = "world";
int pos = findSubstring(str, subStr);
if (pos != -1) {
printf("The substring '%s' is found at position: %d\n", subStr, pos);
} else {
printf("The substring '%s' is not found in '%s'\n", subStr, str);
}
return 0;
}
```
在 `findSubstring` 函数中,通过指针访问字符串中的每个字符,使用 `while` 循环在子串和原始字符串中逐个比较字符。如果找到了子串,函数将返回子串在原始字符串中的位置;否则,返回 `-1`。在 `main` 函数中,我们将 `str` 和 `subStr` 作为参数传递给 `findSubstring` 函数,并根据函数返回的结果输出相应的消息。
阅读全文