我尽量不想用ASCLL码来完成这个问题
char arr1
printf
scanf
if(islower(arr1)){toupper(arr1)}如果是小写,返回1,执行if语句,否则返回0,执行else语句
else{tolower(arr1)}
这个可以代码完成我的题目吗?
你的代码有一些问题,toupper() 和 tolower() 都是函数,需要使用函数调用的方式来调用它们,而不是作为一个表达式使用。另外,islower() 也是一个函数,需要包含头文件 ctype.h 才能使用。
下面是一个示例代码,可以将输入的字符串转换成大写或小写形式:
#include <stdio.h>
#include <ctype.h>
void convert_case(char *str, int (*case_func)(int))
{
while (*str != '\0') {
*str = (*case_func)(*str);
str++;
}
}
int main()
{
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
printf("转换前的字符串:%s\n", str);
// 转换成大写字母形式
convert_case(str, toupper);
printf("转换后的字符串(大写):%s\n", str);
// 转换成小写字母形式
convert_case(str, tolower);
printf("转换后的字符串(小写):%s\n", str);
return 0;
}
convert_case() 函数接受一个字符串和一个函数指针作为参数,该函数指针指向 toupper() 或 tolower() 函数。函数通过循环遍历字符串中的每个字符,并调用给定的函数指针来转换字符的大小写形式。在主函数中,通过调用 convert_case() 函数来将输入的字符串转换成大写或小写形式。
void tolower(char *ch)
{
if (*ch >= 'A' && *ch <= 'Z')
*ch += ch;
}