用c语言编写一个程序要求在一个字符串中查找子串 参数: str, 源字符串 sub, 需查找的子串 返回: 如找到,返加子串的位置,否则返回-1
时间: 2024-10-10 08:04:56 浏览: 61
在C语言中,你可以使用`strstr()`函数来查找子串在源字符串中的位置。这个标准库函数会在`str`中查找`sub`是否存在,并返回首次出现`sub`的指针,如果没找到则返回`NULL`。为了表示位置,你可以从0开始计数,所以需要加上1。以下是简单的代码示例:
```c
#include <stdio.h>
#include <string.h>
int findSubstring(char* str, char* sub) {
if (str == NULL || sub == NULL) {
return -1; // 如果输入为空,直接返回-1
}
char* result = strstr(str, sub); // 查找子串
if (result != NULL) { // 找到了
// 返回子串的第一个字符位置,注意是从0开始的索引
return result - str + 1;
} else {
// 子串未找到
return -1;
}
}
int main() {
char str[] = "Hello, world!";
char sub[] = "world";
int position = findSubstring(str, sub);
if (position != -1) {
printf("Substring '%s' found at position %d.\n", sub, position);
} else {
printf("Substring not found.\n");
}
return 0;
}
```
在这个例子中,`findSubstring()`函数会查找并返回子串`sub`在`str`中的位置。如果没有找到,它将返回-1。
阅读全文