字符分类函数与字符转化函数
前言:在c语言中有一系列的函数专门做字符分类也就是判断一个字符是属于什么类型的比如有数字字符124356789大写字符ABCDE小写字符abcde等等这种函数的使用都需要包含一个头文件#includectype.h一:字符分类函数1.isdigit函数顾名思义这个函数就是判断字符是不是数字字符如果是的话就会返回真我们可以写一个程序来找出一个字符数组里面的数字字符并且将它打印出来(1)理论分析:我们首先需要用循环来遍历这个数组的所有元素用isdigit函数来一个一个判断是否为数字字符如果是那么就将它打印出来如果不是则跳过让它下标1直至遍历完数组(2)代码实现:#define _CRT_SECURE_NO_WARNINGS 1 #includestdio.h #includectype.h int main() { char s[] avd2839fdf22; int i 0; while (s[i]) { if (isdigit(s[i])) { printf(%c , s[i]); } i; } return 0; }2.islower函数这个函数是判断字符是否为小写字符的函数如果是那么返回值就为真我们根据上面的isdigit函数可以写一个只输出打印小写字母的程序代码实现如下#define _CRT_SECURE_NO_WARNINGS 1 #includestdio.h #includectype.h int main() { char arr[] adffsfDFEfsfEFS; int i 0; while (arr[i]) { if (islower(arr[i])) { printf(%c , arr[i]); } i; } return 0; }3.isupper函数这个是判断字符是否为大写字母的函数我们根据前面的经验可以写一个只输出打印大写字母的程序代码实现如下int main() { char arr[] adffsfDFEfsfEFS; int i 0; while (arr[i]) { if (isupper(arr[i])) { printf(%c , arr[i]); } i; } return 0; }4.大小写字母互相转换我们可以用islower和isupper函数来互相转换大小写字母写一个程序将一个字符数组里面的小写字母全部转化成大写字母并将其打印1理论分析:用while循环遍历整个数组然后用islower函数选出小写字母我们知道小写字母a的ASCLL码值是97而大写字母A的ASCLL值是65相差32所以只需让小写字母-32就可以得到对应的大写字符2代码实现:int main() { char str[] asfdSEFSsfee; int i 0; while (str[i]) { if (islower(str[i])) { str[i] - 32; } i; } printf(%s, str); return 0; }对应的将大写字母转化成小写字母同理代码实现如下int main() { char str[] asfdSEFSsfee; int i 0; while (str[i]) { if (isupper(str[i])) { str[i] 32; } i; } printf(%s, str); return 0; }5.其他分类函数除了上述提到的函数还有其它的字符分类函数它们的使用方法同上isalpha(c)是否字母大写 小写isalnum(c)是否字母或数字isspace(c)是否空白字符 (空格、\t、\n、\r 等)ispunct(c)是否标点符号isprint(c)是否可打印字符iscntrl(c)是否控制字符二字符转换函数1.tolower函数上述我们将大小写转换是-32的效果有了转换函数就可以直接用tolower函数int main() { char s[] sdfsefeFESDfesf; int i 0; while (s[i]) { if (islower(s[i])) { s[i] toupper(s[i]); } i; } printf(%s, s); return 0; }2.toupper函数将小写直接转换为大小也可以直接用toupper函数原理同上代码实现如下int main() { char s[] sdfsefeFESDfesf; int i 0; while (s[i]) { if (isupper(s[i])) { s[i] tolower(s[i]); } i; } printf(%s, s); return 0; }