面试题:编程实现将字符串的各个单词翻转
#include <stdio.h>
void wordreverse(char *str)
{
char *start=str;
char *end=str;
char *ptr=str;
char t;
if(str==NULL)
{
return ;
}
while(*ptr++ != '\0')
{
if(*ptr == ' ' || *ptr == '\0') //找到一个单词
{
end=ptr-1;
while(start<end) //将单词反转
{
t = *start;
*start = *end;
*end = t;
start++;
end--;
}
start=end=ptr+1; //指向下一个单词
}
}
start = str;
end = ptr-2; //指向最后一个字母
while(start<end) //将整个字符串反转
{
t = *start;
*start = *end;
*end = t;
start++;
end--;
}
}
void main()
{
char str[] = "I am from Beijing";
printf("%s\n", str);
wordreverse(str);
printf("%s\n", str);
}