MFC结构图http://www.cppblog.com/andxie99/archive/2008/06/04/9747.html
#include<stdio.h> #include<stdlib.h>
#include<string.h>
#include<assert.h>
void word_reverse(char *out, const char *src)
{
const char *p = src;
const char *pend;
const char *pstart;
assert(out != NULL && src != NULL);
while(*p)
p++;
p--;
while(p > src)
{
while(*p == ' ' && p >= src)
*out++ = *p--;
pend = p + 1;
while(*p != ' ' && p >= src)
p--;
pstart = p + 1;
while(pstart < pend)
*out++ = *pstart++;
}
*out = 0;
}
int main()
{
char src[] = "there is a dog";
char out[100] = {0}; word_reverse(out, src);
printf("%s/n", out);
system("pause");
return 0;
}
#include<stdio.h> #include<stdlib.h>
#include<string.h>
#include<assert.h>
void reverse(char *begin, char *end)
{
char tmp;
while (begin < end)
{
tmp = *begin;
*begin = *end;
*end = tmp;
++begin;
--end;
}
}
char *word_reverse(char src[])
{
char *p = src;
char *pstart;
char *pend;
assert(src != NULL);
while (*p)
{
while (*p == ' ')
p++;
pstart = p;
while (*p != ' ' && *p)
p++;
pend = p - 1;
reverse(pstart, pend);
}
pstart = src;
pend = p - 1;
reverse (pstart, pend);
return src;
}
int main()
{
char src[] = "there is a dog";
printf("%s/n", word_reverse(src));
system("pause");
return 0;
}