C语言怎么用函数转换大小写字母

我尽量不想用ASCLL码来完成这个问题
char arr1
printf
scanf
if(islower(arr1)){toupper(arr1)}如果是小写,返回1,执行if语句,否则返回0,执行else语句
else{tolower(arr1)}
这个可以代码完成我的题目吗?

基于Monster 组和GPT的调写:

你的代码有一些问题,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;
}