C 语言中删除字符的库函数384


在 C 语言中,字符串处理是一个常见任务。有时,需要从字符串中删除特定字符。C 标准库提供了几个函数来执行此任务。

strchr() 函数

strchr() 函数用于在字符串中查找特定字符的第一个出现。如果您知道要删除的字符,可以使用此函数找到其位置,然后使用其他函数删除它。
#include
char *strchr(const char *str, int c);

参数:

str:要搜索的字符串
c:要查找的字符

返回:返回找到的字符在字符串中的位置,如果未找到,则返回 NULL。

例如:
char str[] = "Hello, world!";
char *ptr = strchr(str, 'l');
if (ptr != NULL) {
*ptr = '\0'; // 删除字符 'l'
}

strstr() 函数

strstr() 函数用于在字符串中查找指定子字符串的第一个出现。您可以使用此函数找到要删除的字符或子字符串,然后使用其他函数删除它。
#include
char *strstr(const char *haystack, const char *needle);

参数:

haystack:要搜索的字符串
needle:要查找的子字符串

返回:返回找到的子字符串在字符串中的位置,如果未找到,则返回 NULL。

例如:
char str[] = "Hello, world!";
char *ptr = strstr(str, "world");
if (ptr != NULL) {
*ptr = '\0'; // 删除子字符串 "world"
}

memchr() 函数

memchr() 函数用于在内存块中查找指定字符的第一个出现。您可以使用此函数在字符串中查找要删除的字符,然后使用其他函数删除它。
#include
void *memchr(const void *s, int c, size_t n);

参数:

s:要搜索的内存块(字符串)
c:要查找的字符
n:要搜索的字节数

返回:返回找到的字符在内存块中的位置,如果未找到,则返回 NULL。

例如:
char str[] = "Hello, world!";
char *ptr = memchr(str, 'l', strlen(str));
if (ptr != NULL) {
*ptr = '\0'; // 删除字符 'l'
}

strpbrk() 函数

strpbrk() 函数用于在字符串中查找包含指定字符集中的任何字符的第一个出现。您可以使用此函数找到要删除的字符,然后使用其他函数删除它。
#include
char *strpbrk(const char *str, const char *accept);

参数:

str:要搜索的字符串
accept:要查找的字符集

返回:返回找到的字符在字符串中的位置,如果未找到,则返回 NULL。

例如:
char str[] = "Hello, world!";
char *ptr = strpbrk(str, "aeiou");
if (ptr != NULL) {
*ptr = '\0'; // 删除字符串中第一个元音
}

strspn() 和 strcspn() 函数

strspn() 和 strcspn() 函数用于查找字符串中包含特定字符集的第一个连续序列和不包含特定字符集的第一个连续序列。
#include
size_t strspn(const char *str, const char *accept);
size_t strcspn(const char *str, const char *reject);

参数:

str:要搜索的字符串
accept 或 reject:要查找或不查找的字符集

返回:返回找到的连续序列的长度。

您可以使用这些函数找到包含要删除字符的连续序列,然后使用其他函数删除该序列。

2025-02-05


上一篇:C 语言实现矩形输出

下一篇:C语言高效求函数平方的方法