1. 将一个字符串逆序:
如:dou ban ==》 uob nab ==》 nab uob
#include <stdio.h>
void reverseword(char *p,char *q)
{
while(p < q){
char t = *p;
*p++ = *q;
*q-- = t;
}
}
char *reverse(char *s)
{
//这两个指针用了确定一个单词的首尾边界
char *p = s; //指向单词的首子符
char *q = s; //指向空格或着'\0'
while(*q != '\0'){
if(*q == ' '){
reverseword(p,q-1);
q++; //指向下一个单词的首字符
p = q;
}else{
q++;
}
}
reverseword(p,q-1); //对最后一个单词逆序
reverseword(s,q-1); //将整个句子逆序
return s;
}
int main(int argc ,char **argv)
{
char s[] = "dou ban ";
reverse(s);
printf("%s\n",s);
return 0;
}