Я должен создать функцию, которая будет печатать каждое слово из строки в новую строку, но она также должна быть отсортирована по лексикографически, и это то, где я в тупике.Я знаю, как сортировать лексикографически, если каждое слово было введено пользователем вручную (scanf()
), но если я использую свое собственное строковое предложение, я теряюсь, как начать это.Я знаю, что я должен использовать strcmp()
, когда дело доходит до сравнения строк, но как мне сравнить каждое слово, когда строка «выложена так»?
Это то, что у меня так далеко:
#include <stdio.h>
#include <string.h>
void ParseSentence ( char string[] );
int main()
{
char s[100];
strcpy ( s , "hello world, how are you today.");
printf("%s\n", s);
ParseSentence ( s );
}
/*Objective: Isolates the words in a string, printing them on separate lines
and omitting any deliminators*/
/*Input: A string of choice is passed as a character array*/
/*Output: void*/
void ParseSentence( char string[])
{
char *tokenPtr, *DelimList = ", ;.";
tokenPtr = strtok(string, DelimList);
while (tokenPtr != NULL)
{
printf("%s \n", tokenPtr);
tokenPtr = strtok(NULL, DelimList);
}
return;
}