一个程序 看不太懂 请指教
/*如何实现这个算法This is a good day today -> sihT si a doog yad yadot */#include<stdio.h>#include "string.h"#include "malloc.h"char *fun(char *a);int main(int argc, char* argv[]){ char *string = "This is a good day today"; char *ll=fun(string); printf("%s \n %s",ll,string); return 0;}char *fun(char *a){ char *ptt = (char *)malloc(strlen(a)); ptt = a; char *ftt = (char *)malloc(strlen(a)); //*ftt = '\0'; ftt[0] = '\0'; char step[] = " "; char *token; token = strtok( strdup(a),step); //token = strtok( a,step); //这样会出错/*该函数将s1中首次出现s2中字符的位置置为NULL,因此会破坏s1字符串。该函数一般用于分解s1字符串为用特定分隔符分隔的多个字符串,s2一般设置为s1中的分隔字符,比如空格,逗号等,strdup 例如将一条自然英文语句分解为单词。src 待拷贝的源字符串*/ while(token != NULL) { //puts(strrev(token)); strcat(ftt,strrev(token)); /*strrev()将字符串s复制到最近建立的单元*/ strcat(ftt," "); token = strtok( NULL,step);//这句代码 看不太懂 //puts(token); } *(ftt + strlen(a)-1) = '\0'; return ftt;}