Я новичок в C, и я пытаюсь просканировать строку from stdin и извлечь из него n-е слово. Прямо сейчас я жестко запрограммировал его, где вы можете сохранить первую, вторую или третью запись в предложении, и вот как это выглядит:
int set_to_nth_word(char* word, char* input, int n)
{
char word1[20];
char word2[20];
char word3[20];
if(sscanf(input, "%s %s %s", word1, word2, word3) < n)
{
printf("You didn't enter enough values\n");
return 0;
}
else
{
if(n == 1) strcpy(word, word1);
else if(n == 2) strcpy(word, word2);
else if(n == 3) strcpy(word, word3);
return 1;
}
}
Код, вызывающий этот метод:
char *input = (char *) malloc (1);
if(getline(&input, (size_t)0, stdin) != -1)
{
char word[20];
if(set_to_nth_word(word, input, 1))
{
printf("Success");
}
}
Помимо поиска Решение этой проблемы, я буду рад, если кто-нибудь укажет на плохой стиль или неправильное кодирование!