strstr

时间:2024-12-02 10:26:28 来源:
导读 `strstr` 是一个标准的 C 语言库函数,用于查找字符串中第一次出现另一个字符串的位置。它返回一个指向第一个匹配的子字符串在原始字符...

`strstr` 是一个标准的 C 语言库函数,用于查找字符串中第一次出现另一个字符串的位置。它返回一个指向第一个匹配的子字符串在原始字符串中的位置的指针。如果未找到子字符串,则返回 `NULL`。函数原型如下:

```c

const char *strstr(const char *haystack, const char *needle);

```

在这里:

* `haystack` 是您要搜索的主字符串。

* `needle` 是您要查找的子字符串。

函数的工作方式是从 `haystack` 的开始位置搜索 `needle` 的第一个字符。如果找到匹配的字符,它会继续搜索以确认是否真的是匹配的子字符串。如果找到匹配的子字符串,它会返回一个指向 `haystack` 中首次出现该子字符串位置的指针。如果没有找到匹配的子字符串,它将返回 `NULL`。

示例:

```c

#include

#include

int main() {

char str[] = "Hello, this is a sample string for strstr.";

char sub[] = "strstr"; // 这是我们要搜索的子字符串。

char *result = strstr(str, sub); // 使用 strstr 函数搜索子字符串。

if (result) { // 如果结果不为 NULL,表示找到了匹配的子字符串。

printf("Found '%s' at position: %ld\n", sub, result - str); // 输出位置和匹配的子字符串。

} else { // 如果结果为 NULL,表示没有找到匹配的子字符串。

printf("Not found.\n");

}

return 0;

}

```

在这个例子中,我们搜索主字符串 "Hello, this is a sample string for strstr." 中的子字符串 "strstr"。由于找到了匹配的子字符串,所以输出为 "Found 'strstr' at position: 8"。这意味着在给定字符串中,子字符串从位置 8 开始(基于 0 的索引)。

标签: