【发布时间】: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::toupper、std::tolower和std::transform。 -
@yeputons 请写下您的评论作为答案。这样问题就可以结束了。