字符处理函数
C语言标准库ctype.h提供了一系列字符处理函数,用于判断或转换单个字符。这些函数通常以is或to开头:
isalpha(int c):判断字符是否为字母(a-z或A-Z)isdigit(int c):判断字符是否为数字(0-9)isalnum(int c):判断字符是否为字母或数字islower(int c):判断字符是否为小写字母isupper(int c):判断字符是否为大写字母tolower(int c):将字符转换为小写toupper(int c):将字符转换为大写
示例代码:
#include <ctype.h>
#include <stdio.h>
int main() {
char ch = 'A';
if (isupper(ch)) {
printf("%c in lowercase is %c\n", ch, tolower(ch));
}
return 0;
}
字符串处理函数
C语言标准库string.h提供了常用的字符串操作函数:
strlen(const char *str):计算字符串长度(不包括终止符'\0')strcpy(char *dest, const char *src):复制字符串strncpy(char *dest, const char *src, size_t n):安全复制字符串,指定最大长度strcat(char *dest, const char *src):连接字符串strncat(char *dest, const char *src, size_t n):安全连接字符串,指定最大长度strcmp(const char *str1, const char *str2):比较字符串strncmp(const char *str1, const char *str2, size_t n):安全比较字符串,指定比较长度strchr(const char *str, int c):查找字符首次出现位置strstr(const char *haystack, const char *needle):查找子字符串
示例代码:
#include <string.h>
#include <stdio.h>
int main() {
char str1[20] = "Hello";
char str2[] = "World";
strcat(str1, " ");
strcat(str1, str2);
printf("%s\n", str1); // 输出: Hello World
if (strcmp(str1, "Hello World") == 0) {
printf("Strings are equal\n");
}
return 0;
}
字符串转换函数
stdlib.h提供了字符串与其他类型转换的函数:
atoi(const char *str):字符串转整数atof(const char *str):字符串转浮点数strtol(const char *str, char **endptr, int base):字符串转长整数strtod(const char *str, char **endptr):字符串转双精度浮点数
示例代码:
#include <stdlib.h>
#include <stdio.h>
int main() {
char numStr[] = "12345";
int num = atoi(numStr);
printf("%d\n", num + 1); // 输出: 12346
char floatStr[] = "3.14159";
double pi = atof(floatStr);
printf("%.2f\n", pi); // 输出: 3.14
return 0;
}
安全字符串函数
C11标准引入了更安全的字符串函数版本,以_s结尾:
strcpy_s(char *dest, rsize_t destsz, const char *src)strcat_s(char *dest, rsize_t destsz, const char *src)strncpy_s(char *dest, rsize_t destsz, const char *src, rsize_t n)
这些函数在操作时会检查目标缓冲区大小,防止缓冲区溢出。使用时需要定义__STDC_WANT_LIB_EXT1__宏为1。
格式化字符串函数
stdio.h提供了字符串格式化相关函数:
sprintf(char *str, const char *format, ...):格式化输出到字符串snprintf(char *str, size_t size, const char *format, ...):安全格式化输出到字符串sscanf(const char *str, const char *format, ...):从字符串读取格式化输入
示例代码:
#include <stdio.h>
int main() {
char buffer[50];
int a = 10, b = 20;
snprintf(buffer, sizeof(buffer), "Sum of %d and %d is %d", a, b, a + b);
printf("%s\n", buffer); // 输出: Sum of 10 and 20 is 30
return 0;
}

被折叠的 条评论
为什么被折叠?



