C语言字符串查找函数实现及测试用例
C语言字符串查找函数实现及测试用例
本文介绍了使用C语言实现字符串查找函数的功能,并提供了多个测试用例,涵盖了各种查找场景,包括子串在字符串开头、中间、结尾以及不存在的情况。
int find(char* str, char* sub) {
if (str == NULL || sub == NULL || *sub == '\0') {
return -1;
}
int i = 0;
int j = 0;
while (str[i] != '\0') {
if (str[i] == sub[j]) {
j++;
if (sub[j] == '\0') {
return i - j + 1;
}
} else {
j = 0;
}
i++;
}
return -1;
}
测试用例:
- str = 'abcdefg', sub = 'cde',返回2
- str = 'hello world', sub = 'world',返回6
- str = 'abcd', sub = 'efg',返回-1
- str = 'abababab', sub = 'ab',返回0
- str = 'aaaaaa', sub = 'aa',返回0
- str = '', sub = 'abc',返回-1
代码解析:
该代码使用两个指针 i 和 j 分别指向 str 和 sub 的首字符。
- 首先判断输入字符串和子串是否为空或子串长度为零,如果是则返回 -1。
- 循环遍历
str字符串,当str[i]与sub[j]相等时,j指针向后移动,同时判断sub[j]是否为字符串结尾,如果是则说明匹配成功,返回子串在str中的位置。 - 如果
str[i]与sub[j]不相等,则将j指针重置为 0,继续遍历str字符串。 - 如果循环结束仍未找到匹配的子串,则返回 -1。
总结:
本文介绍了如何使用 C 语言实现字符串查找函数,并提供了多个测试用例,方便读者理解代码逻辑。该代码简洁易懂,可以作为学习字符串操作的参考。
原文地址: https://www.cveoy.top/t/topic/n93G 著作权归作者所有。请勿转载和采集!