私はそのような単純な質問があります:ユーザーがキーボードからいくつかの単語を入力できるようにします。1行に1単語ずつ「。」まで入力します。(期間)入力してから結果を出力します。例:
Enter a word: word1
Enter a word: word2
Enter a word: .
You have entered 2 word(s):
word1
word2
OK、ここで試してみましたが、実行すると、最初の単語を入力させた後、ファイルが機能しなくなったと表示されました
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
int main ()
{
char *word[50]; //each word has maximum 49 character
int i=0, number_of_word;
do
{
printf ("Enter a word: ");
scanf("%s", &word[i]);
i++;
}
while (word[i][0]!='.');
number_of_word =i;
printf ("You entered %d word(s):\n", number_of_word);
for (i=0; i<number_of_word; i++)
{
printf("%s\n", &word[i]);
}
return 0;
}
-------------------------------------------------- ---------------------
編集1:
OKこれを試してみましたが、うまくいきましたが、ユーザーが入力できる単語の数も各単語の文字の数もわからないため、文字列の未知のサイズの配列を宣言するための最良の方法を探しています。C++では呼び出される可能性があります動的割り当て配列、Cでそれを行う方法がわかりません
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
int main ()
{
char word[20][50]; //array has maximum 20 words, each word maximum 50 character
int i=0, number_of_word;
do
{
printf ("Enter a word: ");
scanf("%s", word[i]);
i++;
}
while (word[i-1][0]!='.');
number_of_word =i-1;
printf ("You entered %d word(s):\n", number_of_word);
for (i=0; i<number_of_word; i++)
{
printf("Word %d is %s\n", i, word[i]);
}
return 0;
}