微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 toupper 和 tolower 函数切换字符串

如何解决使用 toupper 和 tolower 函数切换字符串

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main()
{
    char str[20],temp;
    printf("enter the string\n");
    gets(str);
    for(int i = 0; i < strlen(str); i++)
    {
        if(tolower(str[i])){
            str[i] = toupper(str[i]);
        }else{
            printf("enterred\n");
            str[i] = tolower(str[i]);
        }
    }
    printf("%s\n",str);
    return 0;
}

我不明白为什么这不起作用,小写变成大写,但明智的相反没有发生。 这是一个非常简单的程序,但我仍然无法理解。

解决方法

试试这个...

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main()
{
    char str[20],temp;
    printf("enter the string\n");
    fgets(str,sizeof(str),stdin);
    for(int i = 0; i < strlen(str); i++)
    {
        if(islower(str[i])){
            str[i] = toupper(str[i]);
        }else{
            printf("enterred\n");
            str[i] = tolower(str[i]);
        }
    }
    printf("%s\n",str);
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。