字符函数与字符串函数(C 语言)
在 C 语言中,处理字符和字符串的函数是非常重要的工具。这些函数大多数定义在标准库 <string.h>
中,提供了多种操作字符串和字符的方式。下面是一些常用的字符函数和字符串函数:
字符函数
字符函数主要用于处理单个字符,通常与字符相关的函数包括:
isalpha(int c)
: 检查字符是否为字母字符。如果是字母字符(无论是大写还是小写),则返回非零,否则返回零。isdigit(int c)
: 检查字符是否为数字(0 到 9)。如果是数字,则返回非零,否则返回零。isalnum(int c)
: 检查字符是否为字母或数字。若是字母或数字,返回非零,否则返回零。isspace(int c)
: 检查字符是否为空白字符(如空格、换行、制表符等)。如果是空白字符,则返回非零,否则返回零。toupper(int c)
: 将字符转换为大写字母。如果字符是小写字母,则转换为对应的大写字母并返回,否则直接返回字符。tolower(int c)
: 将字符转换为小写字母。如果字符是大写字母,则转换为对应的小写字母并返回,否则直接返回字符。
字符串函数
字符串函数用于处理以 null 结尾的字符串(字符数组),常用的字符串函数包括:
strlen(const char *str)
: 返回字符串的长度(不包括结尾的 null 字符)。strcpy(char *dest, const char *src)
: 将源字符串src
复制到目标字符串dest
。strncpy(char *dest, const char *src, size_t n)
: 将源字符串最多复制n
个字符到目标字符串。strcat(char *dest, const char *src)
: 将源字符串连接到目标字符串的末尾。strncat(char *dest, const char *src, size_t n)
: 将源字符串的最多n
个字符连接到目标字符串的末尾。strcmp(const char *str1, const char *str2)
: 比较两个字符串的大小。返回值为负数、零或者正数,分别表示str1
小于、等于或者大于str2
。strncmp(const char *str1, const char *str2, size_t n)
: 比较两个字符串的前n
个字符。strchr(const char *str, int c)
: 在字符串中查找首次出现的字符c
的位置。strstr(const char *haystack, const char *needle)
: 在字符串haystack
中查找子串needle
的首次出现位置。sprintf(char *str, const char *format, ...)
: 根据格式化字符串将格式化的数据写入字符串中。
示例
以下是一些使用字符串函数的小示例:
#include <stdio.h>
#include <string.h>
int main() {
char str1[20] = "Hello";
char str2[20] = "World";
// 串连接
strcat(str1, str2);
printf("Concatenated String: %s\n", str1);
// 查找子串
char *pos = strstr(str1, "Wo");
if (pos != NULL) {
printf("Substring found at position: %ld\n", pos - str1);
} else {
printf("Substring not found\n");
}
// 字符转化
char ch = 'a';
printf("Uppercase: %c\n", toupper(ch));
return 0;
}
这些函数是非常基础但也非常重要的工具,在字符串和字符操作中提供了很大的灵活性和便利性。