输入一句话-实现字符串逆转—项目练习13

在这里插入图片描述在这里插入图片描述
#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
**/
在这里插入图片描述

发布了73 篇原创文章 · 获赞 0 · 访问量 9880

猜你喜欢

转载自blog.csdn.net/weixin_45399178/article/details/104199566