我想创建一个C程序,它接受控制台中的一行字符,将它们存储在数组中,颠倒数组中的顺序,并显示反转的字符串。我不允许使用getchar()
和printf()
以外的任何库函数。我的尝试如下。当我运行程序并输入一些文本并按下Enter时,什么都不会发生。有人能指出错误吗?C程序获取字符到数组和相反顺序
#include <stdio.h>
#define MAX_SIZE 100
main()
{
char c; // the current character
char my_strg[MAX_SIZE]; // character array
int i; // the current index of the character array
// Initialize my_strg to null zeros
for (i = 0; i < MAX_SIZE; i++)
{
my_strg[i] = '\0';
}
/* Place the characters of the input line into the array */
i = 0;
printf("\nEnter some text followed by Enter: ");
while (((c = getchar()) != '\n') && (i < MAX_SIZE))
{
my_strg[i] = c;
i++;
}
/* Detect the end of the string */
int end_of_string = 0;
i = 0;
while (my_strg[i] != '\0')
{
end_of_string++;
}
/* Reverse the string */
int temp;
int start = 0;
int end = (end_of_string - 1);
while (start < end)
{
temp = my_strg[start];
my_strg[start] = my_strg[end];
my_strg[end] = temp;
start++;
end--;
}
printf("%s\n", my_strg);
}
您正在尝试这样解决的三个问题一次:将一个字符串读入一个数组,反转并显示它。一次解决它们,并且不要试图将它们结合起来,直到它们完美地工作。 – Beta
您是否建议像使每个问题成为一个单独的功能并分别测试每个问题?我们还没有很多,但我相信这是一个更好的方法。 – yroc
你可以这样做,或者你可以写三个独立的*程序*,并单独测试它们。相信我,它可以为你节省很多麻烦。 – Beta