使用for循环打印abc大写和小写c ++
print abc upercase and lowercase c++ using for loop
我是 c++ 的新手,我想使用控制台应用程序像这样打印 "abc"
小写和大写。
Aa
Aa, Bc
Aa, Bc, Cc
Aa, Bc, Cc, Dd
以此类推Zz
我的简单代码是:
{
char abc;
for(abc = 'A'; abc <= 'Z'; abc++){
cout<< abc <<",";
}
return 0;
}
谢谢。
不要使用 (char)(abc+32)
作为(叹息)赞成评论的建议。这么一小段代码存在几个问题:
你不应该使用幻数。这里 32
是一个神奇的数字。它是什么?它从何而来?在 ASCII 编码中它是 'a' - 'A'
。如果你需要写这个数字,不要写32
,写'a' - 'A'
。但是我们接下来会看到,这个数字有问题:
使用 'a' - 'A'
进行大小写转换仅适用于 ASCII 编码。 C++
没有指定 char
使用 ASCII,尽管它是最常用的编码。底线:它不是便携式的。如果你使用它,在某处断言使用的编码是ASCII
在 C++ 中你应该避免 C 风格的转换,例如(char)(...)
。请改用 static_cast
。
在 C++ 中进行大小写转换的简单可移植方法是使用 std::toupper
and std::tolower
:
static_cast<char>(std::tolower(abc))
不幸的是,由于 C
的遗留问题,这些函数适用于 int
数据类型(尽管大多数情况下它们将其解释为 char
),因此您需要转换。
其实很简单的逻辑。你需要循环如下:
#include<iostream>
int main()
{
for(int i = 0; i < 26; i ++){
for(int j = 0; j <= i; j++)
std::cout<<(char)(65 + j)<<(char)(65 + j + 32)<<", ";
std::cout<<std::endl;
}
return 0;
}
修改你之前的工作我建议有一个循环 26 次的外循环。并使用 tolower
将大写字母转换为小写字母,但由于它 returns 是一个整数,因此您应该将其转换为 char.
char abc;
int j;
for(int i = 0;i<26;i++)
{
j = 0;
for(abc = 'A'; abc <= 'Z' && j<=i; abc++){
cout<< abc <<static_cast<char>(std::tolower(abc));
if(j+1 <= i)
cout<<", ";
j++;
}
cout<<endl<<endl;
}
我是 c++ 的新手,我想使用控制台应用程序像这样打印 "abc"
小写和大写。
Aa
Aa, Bc
Aa, Bc, Cc
Aa, Bc, Cc, Dd
以此类推Zz
我的简单代码是:
{
char abc;
for(abc = 'A'; abc <= 'Z'; abc++){
cout<< abc <<",";
}
return 0;
}
谢谢。
不要使用 (char)(abc+32)
作为(叹息)赞成评论的建议。这么一小段代码存在几个问题:
你不应该使用幻数。这里
32
是一个神奇的数字。它是什么?它从何而来?在 ASCII 编码中它是'a' - 'A'
。如果你需要写这个数字,不要写32
,写'a' - 'A'
。但是我们接下来会看到,这个数字有问题:使用
'a' - 'A'
进行大小写转换仅适用于 ASCII 编码。C++
没有指定char
使用 ASCII,尽管它是最常用的编码。底线:它不是便携式的。如果你使用它,在某处断言使用的编码是ASCII在 C++ 中你应该避免 C 风格的转换,例如
(char)(...)
。请改用static_cast
。
在 C++ 中进行大小写转换的简单可移植方法是使用 std::toupper
and std::tolower
:
static_cast<char>(std::tolower(abc))
不幸的是,由于 C
的遗留问题,这些函数适用于 int
数据类型(尽管大多数情况下它们将其解释为 char
),因此您需要转换。
其实很简单的逻辑。你需要循环如下:
#include<iostream>
int main()
{
for(int i = 0; i < 26; i ++){
for(int j = 0; j <= i; j++)
std::cout<<(char)(65 + j)<<(char)(65 + j + 32)<<", ";
std::cout<<std::endl;
}
return 0;
}
修改你之前的工作我建议有一个循环 26 次的外循环。并使用 tolower
将大写字母转换为小写字母,但由于它 returns 是一个整数,因此您应该将其转换为 char.
char abc;
int j;
for(int i = 0;i<26;i++)
{
j = 0;
for(abc = 'A'; abc <= 'Z' && j<=i; abc++){
cout<< abc <<static_cast<char>(std::tolower(abc));
if(j+1 <= i)
cout<<", ";
j++;
}
cout<<endl<<endl;
}