c语言利用指针和函数求字符串1在字符串2中的位置
时间: 2024-03-18 12:40:39 浏览: 76
C语言中查找字符在字符串中出现的位置的方法
可以利用指针和函数来实现查找字符串1在字符串2中的位置。可以编写一个函数,接收两个字符串指针作为参数,并返回字符串1在字符串2中的位置。如果字符串1未在字符串2中出现,则返回-1。
示例代码如下:
```c
#include <stdio.h>
int str_find(char *str1, char *str2) {
int pos = -1;
char *p = str2;
while ((p = strchr(p, *str1)) != NULL) {
if (strncmp(p, str1, strlen(str1)) == 0) {
pos = p - str2;
break;
}
p++;
}
return pos;
}
int main() {
char str1[] = "hello";
char str2[] = "world, hello!";
int pos = str_find(str1, str2);
if (pos != -1) {
printf("字符串1在字符串2中的位置为:%d\n", pos);
} else {
printf("字符串1未在字符串2中出现!\n");
}
return 0;
}
```
在上面的代码中,`str_find()` 函数利用 `strchr()` 函数查找字符串2中字符为字符串1首字符的位置,然后用 `strncmp()` 函数比较该位置后面的字符是否与字符串1相同。如果相同,则返回该位置在字符串2中的偏移量,即字符串1在字符串2中的位置。如果找不到,则返回-1。
阅读全文