У меня вопрос простой: пусть пользователь вводит несколько слов с клавиатуры, по одному слову на строку, до символа '.' (Период) Введенный затем распечатать результат, например:массив символов в C
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;
}
--- -------------------------------------------------- ------------------
EDIT 1:
OK Я стараюсь это, он работал, но я до сих пор Лоо king для лучшего способа объявить массив неизвестных размеров символьной строки, так как я не знаю ни того, сколько слов пользователя может ввести, ни сколько букв каждого слова, на 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;
}
ok любое предложение, как объявить массив, так как я не знаю ни того, сколько слов пользователя может ввести, ни сколько букв каждого слова –