原理:例如输入数字 1 2 3 4 5 你想得到 5 4 3 2 1
用一个循环来实现
第一步:1 和 5 对换
第二步:2 和 4 对换
最后得出想要的序列
注:用指针更方便 交换指针的位置就可以得出
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 300
void fanzhuan(char *begain, char *end) {//原理: 例:1,2,3 1和3交换后 就变成:3,2,1
//反转函数
char temp;
while(begain<end){
temp = *begain;
*begain = *end;
*end = temp;
begain++;
end--;
}
}
int main() {
char c[N];//存放字符串的空间
char* pstemp, * ptemp;
while (gets(c) !=NULL) {
fanzhuan(c, c+strlen(c) - 1);
pstemp = c;
while (*pstemp) {
while (*pstemp==' ') {//当一个单词输入结束时 会有一个空格 ,读到空格的时候,判定一个单词输入结束
pstemp++;
}
ptemp = pstemp;
while (*pstemp !=' ' && *pstemp)//此处是单词的尾部判定
{
pstemp++;
}
fanzhuan(pstemp, pstemp - 1);
}
puts(c);
}
}
结果显示: