我试图扭转给定的字符串,我已经完全反转它,但现在我需要自己反转每个单词,以便它们可读。骑自行车穿过一条绳子,并用文字分开?
例如输入:Reverse this string.
电流输出:.gnirts siht esreveR
所需的输出:string. this Reverse
有一些方法可以让我跑我的字符串在每个特定字再次倒车功能?
我试图扭转给定的字符串,我已经完全反转它,但现在我需要自己反转每个单词,以便它们可读。骑自行车穿过一条绳子,并用文字分开?
例如输入:Reverse this string.
电流输出:.gnirts siht esreveR
所需的输出:string. this Reverse
有一些方法可以让我跑我的字符串在每个特定字再次倒车功能?
每个strtok的
char* token = strtok(str, ' ');
while (token)
{
reversedWord = YourReverseAlgorithm(token);
token = strtok(0, ' ');
}
的结果,再次运行反向alroithm每次调用strtok给你原始字符串的令牌到delimitting字符,而你的情况是“”。简单的意见,和工作。
如果它接受的字符串开始和结束偏移反向功能:
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;
}
@ShivanRaptor我想通过循环使用的字符串循环,当它到达非空白文本,商店字符和每个字符,直到下一个空格为止。然后我可以将它翻转并将它放入一个新的字符串中,并用其他字重复此操作。我不知道如何在它到达非空白字符或当它到达空白字符时停止。 – Adam 2013-02-21 02:38:16