鱼C论坛

 找回密码
 立即注册
查看: 956|回复: 4

[已解决]大小写互换程序求改进

[复制链接]
发表于 2020-2-21 22:34:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 一个账号 于 2020-2-21 22:44 编辑



我想达到这种效果:
请输入字母:aBcdE

转换后的字母:AbCDe

==========================================================

请输入字母:

但是实际实现效果:
请输入字母:aBcdE

转换后的字母:A

==========================================================

请输入字母:
转换后的字母:b

==========================================================

请输入字母:
转换后的字母:C

==========================================================

请输入字母:
转换后的字母:D

==========================================================

请输入字母:
转换后的字母:e

==========================================================

请输入字母:

以下是代码,该怎么改呢:
#include <iostream>
using namespace std;

int main()
{
        char letter;
        
        while (1)
        {
                cout << "请输入字母:";
                cin >> letter;
                
                if (int(letter) >= 65 && int(letter) <= 90)
                {
                        letter = int(letter) + 32; 
                }
                
                else if (int(letter) >= 97 && int(letter) <= 122)
                {
                        letter = int(letter) - 32;
                }
                
                else
                {
                        cout << "\n输入不正确!\n\n";
                        cout << "==========================================================\n\n";
                        continue;
                }

                cout << "\n转换后的字母:" << letter << "\n\n";
                
                cout << "==========================================================\n\n";
        }
        
        return 0;
}
最佳答案
2020-2-21 23:32:05
亲,你的letter是char 类型
你一组字母,怎么滴也得char 数组把?
int test9()
{
        char letter[1024] = {0};
        
        while (1)
        {
                cout << "请输入字母:";
                cin >> letter;
                int i = 0;
                while (letter[i] != 0) {
                        if (int(letter[i]) >= 65 && int(letter[i]) <= 90)
                        {
                                letter[i] = int(letter[i]) + 32;
                        }
                        else {

                                if (int(letter[i]) >= 97 && int(letter[i]) <= 122)
                                {
                                        letter[i] = int(letter[i]) - 32;
                                }
                                else
                                {
                                        cout << "\n输入不正确!\n\n";
                                        cout << "==========================================================\n\n";
                                        continue;
                                }

                        }
                        i++;
                }

                cout << "\n转换后的字母:" << letter << "\n\n";

                cout << "==========================================================\n\n";
        }

        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-21 23:32:05 | 显示全部楼层    本楼为最佳答案   
亲,你的letter是char 类型
你一组字母,怎么滴也得char 数组把?
int test9()
{
        char letter[1024] = {0};
        
        while (1)
        {
                cout << "请输入字母:";
                cin >> letter;
                int i = 0;
                while (letter[i] != 0) {
                        if (int(letter[i]) >= 65 && int(letter[i]) <= 90)
                        {
                                letter[i] = int(letter[i]) + 32;
                        }
                        else {

                                if (int(letter[i]) >= 97 && int(letter[i]) <= 122)
                                {
                                        letter[i] = int(letter[i]) - 32;
                                }
                                else
                                {
                                        cout << "\n输入不正确!\n\n";
                                        cout << "==========================================================\n\n";
                                        continue;
                                }

                        }
                        i++;
                }

                cout << "\n转换后的字母:" << letter << "\n\n";

                cout << "==========================================================\n\n";
        }

        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-22 09:10:49 | 显示全部楼层
4goodworld 发表于 2020-2-21 23:32
亲,你的letter是char 类型
你一组字母,怎么滴也得char 数组把?

好的,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-22 10:04:34 | 显示全部楼层
本帖最后由 一个账号 于 2020-2-22 10:27 编辑
4goodworld 发表于 2020-2-21 23:32
亲,你的letter是char 类型
你一组字母,怎么滴也得char 数组把?


我想实现这种效果:
请输入字母:hello world

转换后的字母:HELLO WORLD

==========================================================

请输入字母:
#include <iostream>
using namespace std;

int main()
{
        char letter[1024] = {0};
        int i = 0;
        
        while (1)
        {
            cout << "请输入字母:";
            cin >> letter;
        
            for (i=0; letter[i] != 0; i++)
                {
                if (int(letter[i]) >= 65 && int(letter[i]) <= 90)
                {
                    letter[i] = int(letter[i]) + 32;
                }
                
                else if (int(letter[i]) >= 97 && int(letter[i]) <= 122)
                {
                    letter[i] = int(letter[i]) - 32; 
                }
                
                else
                {
                    cout << "\n输入不正确!\n\n";
                    cout << "==========================================================\n\n";
                    continue;
                        }
            }
        
            cout << "\n转换后的字母:" << letter << "\n\n";
        
            cout << "==========================================================\n\n";
        }
        
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 01:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表