使用“if”打印大写字母

时间:2013-01-05 21:33:19

标签: c++ ascii

我做错了什么?我需要这个,用'if'打印所有大写字母,但有些错误,因为它不止一次打印一个字母!任何帮助表示赞赏:)

//Uppercase letters using if;
#include<iostream>
using namespace std;

int main()
{
    char character='A';
label1:
if(character>='A')
    if(character>='Z')
        goto label2;
    else
    {
        cout<<character<<endl<<character++<<endl;
        goto label1;
    }

label2:
    cout<<"End"<<endl;
    return 0;
}

4 个答案:

答案 0 :(得分:3)

您将character变量增加两次。我发布这个答案只是为了告诉你什么是技术错误,但是有一个更大的概念,即goto的使用。我建议你阅读一些关于C ++的入门书。

//Uppercase letters using if;
#include<iostream>
using namespace std;

int main()
{
    char character='A';

label1:
if(character>='A')
    if(character>'Z'))
        goto label2;
    else
    {
        cout<<character<<endl;
        character++;
        goto label1;
    }

label2:
    cout<<"End"<<endl;
    return 0;
}

答案 1 :(得分:2)

它不止一次打印每个字母的原因如下:

    cout<<character<<endl<<character++<<endl;
          ^^^^^^^^^        ^^^^^^^^^

上述每一项都会导致character被写入cout

答案 2 :(得分:2)

有点晚了,但是:

#include "stdafx.h"
#include<iostream>
#include <string>

using namespace std;

int main()
{
    string s("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
    if (1) goto label1;
    cout << "End" << endl;
    return 0;
label1:
    cout << s << endl;
    return 0;
}

答案 3 :(得分:1)

你的代码错过了两点 -

  1. 没有打印Z
  2. 两次打印字符cout<<character<<endl<<character++<<endl;
  3. 变化:   if(character>='Z') 指向 - &gt; if(character>'Z')

    已编辑字符++(这是错字)  cout<<character<<endl<<character++<<endl; 指向 - &gt; cout<<character++<<endl;

相关问题