在知识回顾的时候发现有许多关于字符的操作没有认识深刻,下面通过对于字符操作的函数来复习一下~~
首先要包括头文件----<ctype.h>
具体的函数大概是这些,他们都是返回值为0或正数。若为真就是返回正数,假的就返回0. 如图是判断是否为大写字母的函数。
字符转换函数一共就有两个一个是小转大,一个是大转小。 如图
但是问题来了,我们一次只能转换一个字符,那么我们可不可以设计代码实现字符串的转换呢?
#include<stdio.h>
#include<ctype.h>
#include<stdio.h>
#include<ctype.h>
void menu() {
printf("********\n");
printf("***1大写转成小写****\n");
printf("***2小写转成大写****\n");
printf("********\n");
}
char* Ispower(char* str) {
char* ret = str;
while (isupper(*str)) {//判断是否为大写字母,是的话进入循环
*str = tolower(*str);//运用字符 转换函数
str++;
}
*str = '\0';//因为printf打印%s时候遇到'\0'停下所以要在字符串结尾加'\0'
return ret;
}
char* Isupper(char* str) {
char* ret = str;
while (islower(*str)) {//判断是否为小写字母,是的话进入循环
*str = toupper(*str);//运用字符 转换函数
str++;
}
*str = '\0';
return ret;
}
int main() {
int input = 0;
char dd[10] = { 0 };
char ss[10] = { 0 };
do {//设计程序来进行连续选择
menu();
scanf("%d", &input);
switch (input)
{
case 1:
scanf("%s", &dd);
Ispower(dd);
printf("%s", dd);
break;
case 2:
scanf("%s", &ss);//连续输入用字符数组
Isupper(ss);
printf("%s", ss);//用%s打印字符串
break;
case 0:
break;
default:
break;
}
} while (input);
}
最后结果是这样的