您的位置:首页 > 编程语言 > C语言/C++

c++之 字符串 中的单词逆序输出

2015-09-06 09:39 1416 查看
题目:从标准输入装置取得一个个英文单词,然后将其中的各个字符(字母)逆序输出!单词和单词之间以一般空格符(换行符 newline , 空格符space 或定位符tab)或者逗号,句号,分号分隔开来。

数据结构:字符串

逻辑思路:(1)输入n(0,1,2,多)个英文单词(2)字母逆序输出(每个单词的字母逆向输出)

单词:当出现这些字符 表明其是一个单词(一般空格符(换行符 newline , 空格符space 或定位符tab)或者逗号,句号,分号)

2.c++源码
#include<iostream>
#include<string>
using namespace std;

int main(int argc, char **argv){
	const string delims(" \t,.;");//单词界限符
	string line;

	//每一行都读取成功
	while(getline(cin,line)){
		string::size_type begIdx, endIdx;

		begIdx = line.find_first_not_of(delims);//找到line中的第一个单词

		//第一个单词找到(不为空串)
		while(begIdx != string::npos)
		{
			//找到这个单词的结尾
			endIdx = line.find_first_of(delims,begIdx);
			//这一行只有一个单词
			if(endIdx == string::npos)
			{
				endIdx = line.length();

			}

			//逆序打印字符
			for(int i = endIdx-1; i>= static_cast<int>(begIdx); --i)
			{
				cout<< line[i];
			}

			cout<<' ';

			//寻找下一个单词的开端
			begIdx = line.find_first_not_of(delims,endIdx);
		}

		

	}

	return 0;
}
3.测试结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: