2013-02-21 31 views
0

我试图扭转给定的字符串,我已经完全反转它,但现在我需要自己反转每个单词,以便它们可读。骑自行车穿过一条绳子,并用文字分开?

例如输入:Reverse this string.

电流输出:.gnirts siht esreveR

所需的输出:string. this Reverse

有一些方法可以让我跑我的字符串在每个特定字再次倒车功能?

+0

@ShivanRaptor我想通过循环使用的字符串循环,当它到达非空白文本,商店字符和每个字符,直到下一个空格为止。然后我可以将它翻转并将它放入一个新的字符串中,并用其他字重复此操作。我不知道如何在它到达非空白字符或当它到达空白字符时停止。 – Adam 2013-02-21 02:38:16

回答

0

每个strtok的

char* token = strtok(str, ' '); 

    while (token) 
    { 
     reversedWord = YourReverseAlgorithm(token); 
     token = strtok(0, ' '); 
    } 

的结果,再次运行反向alroithm每次调用strtok给你原始字符串的令牌到delimitting字符,而你的情况是“”。简单的意见,和工作。

1

如果它接受的字符串开始和结束偏移反向功能:

void rstr(char *s, int start, int end) { 
    /* ... */ 
} 

int main(){ 
    char str[] = "this is a sentence of words"; 
    int i, p; 
    rstr(str, 0, strlen(str)); 
    for (p = i = 0; i <= strlen(str); i++) { 
    if (str[i] == ' ' || i == strlen(str)) { 
     rstr(str, p, i); 
     p = i + 1; 
    } 
    } 
    printf("%s\n", str); 
    return 0; 
}