#include
#include <Windows.h>
#include
using namespace std;
int main(void) {
char learn[88]; //一句话
int i=0;
int j=0;
cout << "请输入一句话: ";
gets_s(learn, sizeof(learn));
//循环判断
while(learn[i] != '\0') {
while(learn[i] == ' ') { ++i; } //等于空格i加加
j = i;
while(learn[j] !='\0' && learn[j] !=' ') { ++j;} //不等于空格与不等于结束符j加加
//字符单词逆转
for(int p1=i, p2=j-1; p1<p2; ++p1, --p2) {
int tmp = learn[p1];
learn[p1] = learn[p2];
learn[p2] = tmp;
}
i = j;
}
//字符串整体次逆转
for(int p1=0, p2=i-1; p1<p2; ++p1, --p2) {
int tmp = learn[p1];
learn[p1] = learn[p2];
learn[p2] = tmp;
}
cout << "前后逆转之后:" << learn << endl;
system("pause");
return 0;
}
/**
输入一句话
然后把这个字符串以单词为单位,逆转输出。(腾讯笔试题)
实现速度最快,移动最少。
比如将“Alice call Jack”转换为“Jack call Alice”,
**/
/**
方法1: 方法2:
123 456 789 123 456 789
987 654 321 321 654 987
789 456 123 789 456 123
**/