首页 > 其他 > 详细

将一行字符串中的单词翻转

时间:2016-01-07 07:43:30      阅读:136      评论:0      收藏:0      [点我收藏+]
#include <stdio.h>
#include <stdlib.h>

int main(){
	char chs[100];
	gets(chs);
	int length = 0;
	for (; chs[length] != ‘\0‘; ++length);	//求出字符串的总长度
	for (int i = 0; i < length / 2; ++i){	//将整个字符串串翻转过来
		char tmp = chs[i];
		chs[i] = chs[length - 1 - i];
		chs[length - 1 - i] = tmp;
	}
	int index1, index2;	//分别为目前单词的第一个字母和最后一个字母的位置
	for (int i = 0; i < length; ++i){
		//第一个字符不为空格,产生新单词
		//前一字符为空,当前字符不为空,产生新单词
		if (((i == 0) && (chs[i] != ‘ ‘)) || ((chs[i] != ‘ ‘) && (chs[i - 1] == ‘ ‘)))
			index1 = i;
		//最后一个字符不为空格,结束一个单词
		//当前字符不空,后一字符为空,结束一个单词
		if (((i == length - 1) && (chs[i] != ‘ ‘)) || ((chs[i] != ‘ ‘) && (chs[i + 1] == ‘ ‘))){
			index2 = i;
			for (int j = index1; j <= index2 / 2; ++j){	//将本单词翻转过来
				char tmp = chs[j];
				chs[j] = chs[index1 + index2 - j];
				chs[index1 + index2 - j] = tmp;
			}
		}
	}
	for (int i = 0; i < length; ++i)
		printf("%c",chs[i]);
	printf("\n");
	system("pause");
	return 0;
}

  

将一行字符串中的单词翻转

原文:http://www.cnblogs.com/mutaohengheng/p/5108034.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!