所以我一直在寻找并试图找到一个简单的解决方案来解决这个问题,该解决方案不涉及 c++ 中非常常见的“cin”、“cout”问题的解决方案。我想要完成的是从键盘扫描一个条目,然后以相反的顺序打印它。我认为我的语法有问题,但我不知道问题出在哪里。
使用“abc”作为输入 5 次后得到的输出是这样的:
//Start of input
Enter a string:
abc
abc
abc
abc
abc
╠
cba
cba
cba
cba
cb
Enter a string:
//End of output
这是我的代码。
#include "stdafx.h"
#include <stdio.h>
#include <string>
#define SIZE 20
int main()
{
char a[SIZE];
int i, j, k = 0, pass;
char hold = ' ';
for (i = 1; i != 0; i++)
{
printf("Enter a string: \n");
for (i = 0; i < SIZE; i++)
{
scanf_s("%c", &a[i]);
k++;
}
for (j = k; j > 0; j--)
{
printf("%c", a[j]);
}
printf("\n");
}
return 0;
}
最佳答案
你的
for (j = k; j > 0; j--)
{
printf("%c", a[j]);
}
有问题 为什么不迭代a[0]?
看,这是你的输入
for (i = 0; i < SIZE; i++)
{
scanf_s("%c", &a[i]);
k++;
}
你在a[0]中保留了一个字符,所以你当然应该打印它,例如:
for (j = k; j >= 0; j--)
{
printf("%c", a[j]);
}
关于c - 反转字符串变量,或反转打印字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49683855/