首页 > 解决方案 > 如何打印下一个字母直到 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++ 新手,有人可以帮助我吗?

标签: c++algorithmprintingstdstringalphabet

解决方案


如果增加的字符不是字母,则扣除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);

见现场演示


推荐阅读