c++ - 如何打印下一个字母直到 Z 并继续到 A?
问题描述
此代码打印我输入的下一个字母。例如,我输入“ v
”,它会显示vwxyz
,但我希望它也打印其他的,比如vwxyzabc.....
int main()
{
char a;
int flag = 0;
scanf("%c", &a);
while (a <= 'z')
{
printf("%c", a);
a++;
}
printf("\n");
return 0;
}
我是 C++ 新手,有人可以帮助我吗?
解决方案
如果增加的字符不是字母,则扣除26
以返回开始并执行循环,直到看到输入的字符。
#include <cctype> // std::isalpha
char curr = a;
do
{
printf("%c", curr);
++curr;
if (!std::isalpha(static_cast<unsigned char>(curr)))
curr -= 26;
} while (curr != a);
(见现场演示)
推荐阅读
- r - 两个具有不同 x 轴和标题的情节并排
- snakemake - 使用 Snakemake 将多个文件拆分为多个部分
- blockchain - 如何获取给定 herotag 的钱包地址?
- python - 无法在 django 中加载客户标签
- css - 弹性和空白:nowrap;孩子不会尊重宽度
- java - Docker build image COPY failed: stat no such file or directory
- amazon-web-services - 如何解决“创建容器任务失败:创建垫片失败:OCI 运行时创建失败:安装无效”错误?
- amazon-web-services - SQS API:sqs:CreateQueue 使用 Cloudformation 在“放大推送”上拒绝访问资源 https://sqs.us-east-1.amazonaws.com/
- symfony - Api 平台 - 从 swagger 中删除自动代码响应描述
- npgsql - YugabyteDB YSQL中的第一个NpgsqlConnection慢