名为find的函数,用于在一个字符数组str(字符串)中查找另一个字符数组sub(子串),写一个最简单的代码,分支情况明显
时间: 2024-10-22 12:07:08 浏览: 34
python七种方法判断字符串是否包含子串
如果你想编写一个更直观、包含明显分支结构的find函数,你可以将其拆分成几个if-else嵌套,例如检查子串在字符串开头、结尾以及中间的情况。这里是一个简化版的例子:
```c
#include <stdio.h>
#include <string.h>
// 定义find函数,参数为str和sub
int find(char* str, char* sub) {
if (str == NULL || sub == NULL) {
printf("Error: Both strings must be non-null.\n");
return -1;
}
int len_str = strlen(str);
int len_sub = strlen(sub);
// 检查子串是否等于字符串本身
if (!strcmp(str, sub)) {
return 0; // 找到了,返回0表示子串在原字符串中
}
// 检查子串在字符串开头
if (strncmp(str, sub, len_sub) == 0) {
return 0; // 返回0,表示找到了
}
// 检查子串在字符串末尾
if (len_str >= len_sub && strncmp(str + len_str - len_sub; // 返回子串在字符串中的起始位置
}
// 子串不在开始和结尾,进行逐个字符比较
for (int i = 1; i < len_str - len_sub + 1; i++) {
if (strncmp(str + i, sub, len_sub) == 0) {
return i; // 返回第一个匹配到的位置
}
}
// 如果遍历完整个字符串都没找到,返回-1
return -1;
}
int main() {
char str[] = "Hello, world!";
char sub[] = "world";
int result = find(str, sub);
if (result != -1) {
printf("Substring found at position %d\n", result);
} else {
printf("Substring not found.\n");
}
return 0;
}
```
阅读全文