如何用C语言求字符串的子字符串:使用strstr
函数、编写自定义函数、处理边界条件。strstr
函数是C语言标准库中的一个函数,可以用来查找一个字符串在另一个字符串中的第一次出现。下面我们将详细讲解如何使用strstr
函数以及如何编写一个自定义函数来实现字符串的子字符串查找。
一、使用strstr
函数
C语言的标准库提供了一个名为strstr
的函数,它用于查找子字符串在字符串中的首次出现。其函数原型如下:
char *strstr(const char *haystack, const char *needle);
haystack
是要被搜索的字符串,而needle
是要查找的子字符串。strstr
函数返回一个指向haystack
中第一次出现needle
的指针,如果没有找到则返回NULL
。
示例代码
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello, World!";
char sub[] = "World";
char *pos = strstr(str, sub);
if (pos != NULL) {
printf("Substring found at position: %ldn", pos - str);
} else {
printf("Substring not found.n");
}
return 0;
}
二、自定义函数实现子字符串查找
如果你想要更灵活的控制,可以考虑编写一个自定义函数来实现子字符串查找。这不仅能帮助你理解底层原理,还能满足一些特殊需求。
示例代码
#include <stdio.h>
int findSubstring(const char *str, const char *sub) {
int i, j;
int strLen = 0, subLen = 0;
// 计算字符串长度
while (str[strLen] != '