我应该创建一个函数,该函数可以将字符串中的每个单词打印到新行,但是也应该按字典顺序进行排序,这就是我的困惑所在。如果用户手动输入了每个单词(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;
}