C语言代码 str中查找sub返回在sub中的起始位置找不到返回-1
时间: 2024-10-29 08:17:58 浏览: 5
C_sub_str.rar_sub
在C语言中,如果要在字符串`str`中查找子串`sub`并返回其起始位置,你可以编写这样一个简单的函数,例如使用标准库函数`strstr()`。如果没有找到子串,则会返回空指针,所以我们需要将结果转换为整数,并在找不到时返回-1。下面是对应的代码:
```c
#include <stdio.h>
#include <string.h>
int find_substring(const char* str, const char* sub) {
char* result = strstr(str, sub); // 查找子串
if (result) {
// 返回子串起始位置,注意strlen(sub)+1是因为包括子串本身
return (result - str); // 减去头指针的位置就是实际偏移量
} else {
// 没有找到,返回-1
return -1;
}
}
int main() {
const char* str = "Hello, World!";
const char* sub = "World";
int start_pos = find_substring(str, sub);
if (start_pos != -1) {
printf("Substring '%s' found at position %d\n", sub, start_pos);
} else {
printf("Substring '%s' not found.\n", sub);
}
return 0;
}
```
阅读全文