引言
在C语言编程中,字符函数和字符串函数是处理文本数据不可或缺的工具。本文将详细介绍这两类函数的定义、功能、使用方法,并通过示例代码帮助读者更好地理解和应用这些函数。
一、字符函数
字符函数通常位于ctype.h头文件中,它们对单个字符进行操作,判断字符的类型或转换字符。
1.字符分类函数
函数 | 如果参数符合下列条件则返回真 |
---|---|
iscntrl | 控制字符:换页‘f’,换行'n',回车‘r’,制表符't',垂直制表符'v’等 |
isspace | 空白字符:空格‘ ’,换页‘f’,换行'n',回车‘r’,制表符't',垂直制表符'v'等 |
isdight | 十进制数字0~9 |
isxdight | 十六进制数字,包括所有十进制数字,小写字母a~f,大写字母A~F |
islower | 小写字母a~z |
isupper | 大写字母A~Z |
isalpha | 字母a~z或A~Z |
isalnum | 字母或者数字,a~z,A~Z,0~9 |
ispunct | 标点符号,任何不属于数字或者字母的图形字符(可打印) |
isgraph | 任何图形字符 |
isprint | 任何可打印字符,包括图形字符和空白字符 |
使用示例:
这些函数的使⽤⽅法⾮常类似,我们这里就以一个为例,其他的⾮常类似:
代码语言:javascript复制int islower ( int c );//判断字符是否为小写字母
//通过返回值来说明是否是⼩写字⺟
//如果是⼩写字⺟就返回⾮0的整数,如果不是⼩写字⺟,则返回0
写一个代码,将字符串中的小写字母转大写:
代码语言:javascript复制#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <ctype.h>
int main()
{
int i = 0;
char str[] = "i love Chinan";
char c;
while (str[i])
{
c = str[i];
if (islower(c))
c -= 32;
putchar(c);
i ;
}
return 0;
}
输出:
2.字符转换函数
代码语言:javascript复制tolower(int ch);//将大写字母转换为小写。
toupper(int ch);//将小写字母转换为大写。
使用示例:上⾯的代码,我们将⼩写转⼤写,是-32完成的效果,有了转换函数,就可以直接使⽤ tolower函数。
代码语言:javascript复制#include <stdio.h>
#include <ctype.h>
int main()
{
int i = 0;
char str[] = "i love Chinan";
char c;
while (str[i])
{
c = str[i];
c=toupper(c);//这里直接使用函数来转换
putchar(c);
i ;
}
return 0;
}
输出:
二、字符串函数
字符串函数通常位于<string.h>头文件中,它们对以null字符结尾的字符串进行操作。
1.gets、puts
gets、puts的头文件为<stdio.h>。其余均为<string.h>。
gets函数原型:
代码语言:javascript复制char *gets(char *str);
参数:
str:指向一个字符数组的指针,gets 函数会将读取的字符串存储在这个数组中。
功能:
gets 函数会读取一行输入,直到遇到换行符,然后自动将换行符替换为字符串结束符 ,并将读取的字符串存储在 str 指向的字符数组中。
puts函数原型:
代码语言:javascript复制int puts(const char *str);
参数:
str:指向要输出的以空字符 结尾的字符串的指针。 功能:
puts 函数将 str 指向的字符串输出到标准输出,并在字符串末尾自动添加一个换行符 n。它不会在字符串中查找或输出任何嵌入的换行符。
返回值:
成功:如果输出成功,puts 返回一个非负值。 失败:如果发生错误,puts 返回 EOF(通常定义为 -1)。
使用示例:
代码语言:javascript复制#include <stdio.h>
#include <string.h>
int main()
{
char str[20];
printf("输入:n");
gets(str);
printf("输出:n");
puts(str);
return 0;
}
运行结果:
2.strlen
函数原型:
代码语言:javascript复制size_t strlen(const char *s);
参数:
s:指向要计算长度的字符串的指针。(必须是一个以空字符'