Я новичок в C, и я пытаюсь отсканировать строку из 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");
}
}
Помимо поиска решения этой проблемы, я был бы рад, если бы кто-нибудь указал на плохой стиль или плохую практику кодирования!