コンソールから文字列を受け取り、配列に格納し、配列の順序を逆にし、逆の文字列を表示する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);
}
...インクリメントされているあなたがループしながら、2番目のを見て、my_stringどこに自分自身を尋ねるべきだと思います一度文字列を配列に読み込み、逆にして表示する。一度に1つずつ取り組み、完璧に動作するまでそれらを結合しようとしないでください。 – Beta
あなたは、それぞれの問題を別々の機能にして、それぞれを別々にテストするようなことを提案していますか?私たちはまだそれほど多くはありませんでしたが、私はそれがより良いアプローチだと確信しています。 – yroc
これを行うこともできますし、別々の*プログラム*を書いて別々にテストすることもできます。私を信じて、それはあなたに多くのトラブルを救うことができます。 – Beta