这篇文章将为大家详细讲解有关C语言如何在字符串中搜索指定字符中的任意一个,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
C语言中搜索字符串中指定字符的任意一个
C语言提供了多种函数来处理字符串,其中strchr()
函数和strcspn()
函数可用于在字符串中搜索指定字符中的任意一个。
1. strchr() 函数
strchr()
函数在字符串中搜索第一个与指定字符匹配的字符。如果找到匹配的字符,它返回指向该字符的指针;如果未找到,则返回 NULL。该函数的语法如下:
char *strchr(const char *str, int c);
str
:要搜索的字符串。c
:要搜索的字符,以 ASCII 码形式表示。
示例:
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "Hello, world!";
char c = "o";
char *ptr;
ptr = strchr(str, c);
if (ptr != NULL) {
printf("Found character "%c" at position %d
", c, (int)(ptr - str));
} else {
printf("Character "%c" not found
", c);
}
return 0;
}
输出:
Found character "o" at position 4
2. strcspn() 函数
strcspn()
函数在字符串中搜索第一个不在指定字符集中的字符。它返回从字符串开头到第一个不在字符集中的字符之间的字符数。如果字符串的开头不包含任何不在字符集中的字符,则返回字符串的长度。该函数的语法如下:
size_t strcspn(const char *str, const char *reject);
str
:要搜索的字符串。reject
:要搜索的字符集,是一个以 NUL 字符终止的字符串。
示例:
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "Hello, world!";
char reject[] = "aeiou";
size_t len;
len = strcspn(str, reject);
printf("The first character not in "%s" is at position %d
", reject, len);
return 0;
}
输出:
The first character not in "aeiou" is at position 1
注意要点:
strchr()
函数只搜索第一个匹配的字符,而strcspn()
函数搜索所有匹配的字符。strchr()
函数返回一个字符指针,而strcspn()
函数返回一个无符号整数。- 字符集中的字符可以是任何 ASCII 码值,也可以使用转义序列表示。
- 以上函数都对大小写敏感。
以上就是C语言如何在字符串中搜索指定字符中的任意一个的详细内容,更多请关注编程学习网其它相关文章!