c - 反转字符串变量,或反转打印字符数组

标签 c arrays char printf scanf

所以我一直在寻找并试图找到一个简单的解决方案来解决这个问题,该解决方案不涉及 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/

相关文章:

PHP Array_diff 当有重复的数组值时

javascript - 在 Javascript 中对数字数组进行排序

c++ - 为什么隐式转换的结果是 -128?

java - 评估 Java 中的数学表达式

c - 请用 C 语言编写简单的随机字符串生成函数。给我看看你的艺术!

c - 在 C 中查找特定单词

c# - 使用 foreach 循环从 System.String[] 打印值

c - 内存如何存储有符号和无符号字符

c++ - 翻转 bool : performance comparison of x=! x 与 x^=1

c - 变量 'pminutes' 未初始化就被使用