前言
这里你可以学习到C语言的字符函数的用法,C语言中对于字符的处理是有许多种方式的,其中各种函数对于字符的处理是极其重要且基础的。希望能更加熟稔的掌握字符函数的应用。
1.头文件
#include <ctype.h>
#icnlude <string.h>
#include <strings.h>
2.具体函数
函数原型说明 | 功能 | 返回值 |
---|---|---|
int isalnum( int ch ); | 判断参数是否数字或字母字符 | 若非数字或字符返回0否则返回非0值 |
int isalpha( int ch ); | 判断参数是否字母字符 | 若非字母返回0否则返回非0值 |
int isdigit( int ch ); | 判断参数是否为0~9的字符 | 若非数字字符返回0否则返回非0值 |
int islower( int ch ); | 判断参数是否为小写字母字符 | 若非小写字母字符返回0否则返回非0值 |
int isupper( int ch ); | 判断参数是否为大写字母字符 | 若非大写字母字符返回0否则返回非0值 |
int isxdigit( int ch ); | 判断参数是否为16进制数字符 | 若非16进制字符返回0否则返回非0值 |
size_t strlen(const char *s); | 计算字符串的长度,不包含’\0’ | 返回字符长度 |
char *strcpy(char *dest, const char *src); | 拷贝字符串,相当于普通变量的赋值语句 | 返回dest |
char *strcat(char *dest, const char *src); | 把字符串src追加到dest的末尾,相当于普通变量的 += | 返回dest |
int strcmp(const char *s1, const char *s2); | 按字典序,比较两个字符串,谁小谁在前 | 若s1 >s2 返回正值,若s1<s2 返回负值,若s1 == s2返回0 |
3.例子
实现一个函数把字符串单词首字母转换成大写,字符串中空格转换成%_%。
#include <stdio.h>
#include <ctype.h>
#include <stdbool.h>
char* str_opt(char* str)
{
int i = 0 , cnt = 0;
bool flag = true;
while(str[i])
{
if(isalpha(str[i]) && flag)
{
flag = false;
if(islower(str[i]))
str[i] -= 32;
}
if(!isalpha(str[i]))
{
flag = true;
}
if(isspace(str[i]))
{
cnt++;
}
i++;
}
int end = i+cnt*2;
str[end--] = '\0';
while(--i)
{
if(isspace(str[i]))
{
str[end--] = '%';
str[end--] = '_';
str[end--] = '%';
}
else
{
str[end--] = str[i];
}
}
return str;
}
int main(int argc,const char* argv[])
{
char str[20] = "sun ling ling";
puts(str_opt(str));
}
总结
以上仅仅是对C语言字符函数的基础的部分,虽少但也实用。