在线词典

strchr与strstr函数

更新日期:2026-09-18 01:34:39

标题strchr与strstr函数
内容

在C语言中,字符串处理是编程中的重要部分。`strchr`和`strstr`是两个常用的字符串查找函数,它们分别用于查找字符或子字符串的首次出现位置。以下是对这两个函数的总结与对比。

一、函数功能总结

函数名称 功能描述 返回值说明
`strchr` 在字符串中查找指定字符的首次出现位置 成功时返回指向该字符的指针;失败返回`NULL`
`strstr` 在字符串中查找指定子字符串的首次出现位置 成功时返回指向该子字符串起始位置的指针;失败返回`NULL`

二、函数原型

```c

char strchr(const char s, int c);

char strstr(const char s1, const char s2);

```

- `strchr`:参数`s`是待查找的字符串,`c`是要查找的字符(以整数形式传递)。

- `strstr`:参数`s1`是主字符串,`s2`是要查找的子字符串。

三、使用示例

示例1:使用 `strchr`

```c

include

include

int main() {

char str[] = "Hello, World!";

char pos = strchr(str, 'o');

if (pos != NULL) {

printf("Found 'o' at position: %ld\n", pos - str);

} else {

printf("Not found.\n");

}

return 0;

}

```

输出:

```

Found 'o' at position: 4

```

示例2:使用 `strstr`

```c

include

include

int main() {

char str[] = "This is a test string.";

char sub = strstr(str, "test");

if (sub != NULL) {

printf("Found substring: %s\n", sub);

} else {

printf("Not found.\n");

}

return 0;

}

```

输出:

```

Found substring: test string.

```

四、注意事项

- 两个函数都属于标准库函数,需包含头文件``。

- `strchr`查找的是单个字符,而`strstr`查找的是整个子字符串。

- 返回值为指针类型,使用时需判断是否为`NULL`,避免空指针访问错误。

五、对比表格

特性 `strchr` `strstr`
查找对象 单个字符 子字符串
参数数量 2个 2个
返回值 指向字符的指针 指向子字符串起始的指针
是否区分大小写 是(取决于字符匹配) 是(完全匹配)
是否支持多字节字符 否(仅适用于ASCII) 否(仅适用于ASCII)

六、应用场景

- `strchr`常用于查找特定字符的位置,如查找分隔符、换行符等。

- `strstr`常用于判断一个字符串是否包含另一个字符串,如验证输入格式、提取信息等。

通过合理使用`strchr`和`strstr`,可以高效地进行字符串处理,提升程序的可读性和功能性。

随便看