64,656
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <assert.h>
#include <string>
char *ReverseChars(char *begin, char *end) {
assert(NULL != begin && "ReverseChars()");
assert(NULL != end && "ReverseChars()");
--end;
char *p = begin;
while (begin < end) {
char c = *begin;
*begin = *end;
*end = c;
++begin, --end;
}
return p;
}
char *ReverseWords(char *words)
{
assert(NULL != words && "ReverseWords()");
ReverseChars(words, words+strlen(words));
char *word_head = words;
for(char *word_tail = NULL; NULL != (word_tail = strchr(word_head, ' ')); word_head = ++word_tail)
ReverseChars(word_head, word_tail);
return words;
}
int main(int argc, char *argv[])
{
char str[] = "I love this game";
printf("%s\n", str);
ReverseWords(str);
printf("%s\n", str);
return 0;
}
#include <stdio.h>
#include <assert.h>
#include <string>
char *ReverseChars(char *begin, char *end) {
assert(NULL != begin && "ReverseChars()");
assert(NULL != end && "ReverseChars()");
--end;
char *p = begin;
while (begin < end) {
char c = *begin;
*begin = *end;
*end = c;
++begin, --end;
}
return p;
}
char *ReverseWords(char *words)
{
assert(NULL != words && "ReverseWords()");
char *p = words;
ReverseChars(words, words+strlen(words));
char *world_head = words;
char *world_tail = strchr(words, ' ');
while(NULL != world_tail) {
ReverseChars(world_head, world_tail);
world_head = world_tail + 1;
world_tail = strchr(world_head, ' ');
}
return p;
}
int main(int argc, char *argv[])
{
char str[] = "I love this game";
printf("%s\n", str);
ReverseWords(str);
printf("%s\n", str);
return 0;
}