20191126 输入字符串,以单词为单位,进行输入的逆转

/****************************************
输入一句话,以单词为单位,逆转输出,例如
   I love you
   you love I
***************************************/
#include <Windows.h>
#include <iostream>
#include   <string>
#include <stdio.h>
using namespace std;

int main() {
	int i= 0;
	int j = 0;
	bool flag = TRUE;
	char str[1024] = { '\0' };//记录输入的字符串
	char strTmp;
	char strWord[256][20] = { '\0' };//记录以单词为单位的字符串数组
	cout << "请输入一句话:";
	//I  LOVE YOU   
	//scanf_s("%s",str,1024);//scanf_s读入的字符串当遇到空格时就截止了,故只能用gets
	gets_s(str, sizeof(str));//读入一行的字符串,直到遇到回车换行符
	for (i = 0; i < strlen(str); i++) {
		strTmp = str[i];
		if (strTmp == ' ' && flag == FALSE) {
			flag = TRUE;//flag 的定义是为了避免连续的空格时下标连续加,只在遇到第一个空格时下标加1
			j++;
		}
		else if (strTmp != ' ') {
			int res=strncat_s(strWord[j],sizeof(strWord[j]),(const char*) &strTmp, 1);
			flag = FALSE;
		}
	}
	for (i = j; i >=0; i--) {
		cout << strWord[i] << " ";
	}
	cout << endl;
	system("pause");
	return 0;
}



个人感觉这样写的代码还是比较精炼易懂的!赞一个!

发布了51 篇原创文章 · 获赞 0 · 访问量 562

猜你喜欢

转载自blog.csdn.net/weixin_40071289/article/details/103266483