【问题标题】:How to show two characters instead of one?如何显示两个字符而不是一个字符?
【发布时间】:2017-06-24 03:09:50
【问题描述】:

我似乎无法让我的程序显示我在'' 中列出的两个值。我将它列为'Aa''Bb' 等等,但是当我运行代码时,它只显示第二个字母(小写字母)。我已经尝试从int 转换、指针和其他内容进行更改,但无法弄清楚这部分。非常感谢任何帮助!

这是我的代码:

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

using std::cin;
using std::cout;
using std::endl;

int main()
{
    char letters[] = { 'Aa', 'Bb', 'Cc', 'Dd', 'Ee', 'Ff', 'Gg', 'Hh', 
        'Ii', 'Jj', 'Kk', 'Ll', 'Mm', 'Nn', 'Oo', 'Pp', 'Qq', 'Rr', 'Ss', 
        'Tt', 'Uu', 'Vv', 'Ww', 'Xx', 'Yy', 'Zz', '\0'};

    for (char * cp = letters; *cp; ++cp)
    {
        if (*cp == 0) break;
        printf("%c", *cp);
    }
    cout << endl;
}

它显示字母,但只显示小写值。如何让它在'' 中同时显示大写和小写值?

【问题讨论】:

  • 'Aa' 不是char。你不能用char[] 做你想做的事;使用字符串。
  • Single quotes vs. double quotes in C or C++。当您尝试将'Aa' 放入char(只能包含一个字符)时,它会被截断并变成简单的'a'。预期的效果是什么?另外,我建议启用所有编译器的警告(-Wall -Wextra 用于 gcc)
  • 谢谢,这就是我的想法,但我能找到的只是数组的字符,但使用字符串值可以显示它。
  • 另见std::toupperstd::tolowerstd::transform
  • @yeputons 请写下您的评论作为答案。这样问题就可以结束了。

标签: c++ c for-loop


【解决方案1】:

Single quotes vs. double quotes in C or C++。当您尝试将'Aa' 放入char(只能包含一个字符)时,它会被截断并变成简单的'a'。我建议启用所有编译器的警告(-Wall -Wextra for gcc)以避免此类错误。

【讨论】:

    猜你喜欢
    • 2014-10-27
    • 1970-01-01
    • 2022-07-05
    • 1970-01-01
    • 2017-04-09
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    相关资源
    最近更新 更多