反转字符串,但是字符串中的单词不反转。
例如:“I love you”反转之后"you love I"
#include <string.h>
#include <stdio.h>
void reserve_str_word(char* s, char* s_word, char*& d)
{
while(*s != '\0' && *s != ' ') //寻找下一个WORD
++s;
if(*s != '\0') //说明遇到了' ',尚未结束,继续
{
reserve_str_word(s+1, s+1, d);
*d++ = ' '; //加上分隔符
}
memcpy(d, s_word, s-s_word);
d += (s-s_word);
}
bool reserve_str(char* s, char* d)
{
if(s == NULL || d == NULL)
return false;
reserve_str_word(s, s, d);
*d = '\0';
return true;
}
int main()
{
char s[] = "i love this game";
char d[100];
reserve_str(s, d);
printf("%s",d);
return 0;
}
//请原谅,由于代码编辑器好长时间没有打开,就直接在正文中粘贴代码了