c++之 字符串 中的单词逆序输出
2015-09-06 09:39
1416 查看
题目:从标准输入装置取得一个个英文单词,然后将其中的各个字符(字母)逆序输出!单词和单词之间以一般空格符(换行符 newline , 空格符space 或定位符tab)或者逗号,句号,分号分隔开来。
数据结构:字符串
逻辑思路:(1)输入n(0,1,2,多)个英文单词(2)字母逆序输出(每个单词的字母逆向输出)
单词:当出现这些字符 表明其是一个单词(一般空格符(换行符 newline , 空格符space 或定位符tab)或者逗号,句号,分号)
2.c++源码
数据结构:字符串
逻辑思路:(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.测试结果:
相关文章推荐
- C语言设置和取得socket状态的相关函数用法
- C++ tinyxml使用
- kaldi中特征提取,C++接口设计
- C语言实现字符串转化成整数
- C++中关于作用域的错误总结
- C++Primer快速浏览笔记-类型转换
- C/C++修改常量的值
- C语言实现将整数转化成字符串数,不用函数itoa
- 从C++到java
- C语言中网络地址与二进制数之间转换的函数小结
- Item 21:需要返回对象时,不要返回引用 Effective C++笔记
- C++支持的程序设计范式
- C语言--static全局使用示例
- C/C++输入输出流总结 (转载)
- C++ bitset头文件中的内容
- c语言预编译以及static,extern的使用
- 2015.09.05 C++中类的static与const成员
- 二叉搜索树的c++实现(含深复制)
- Effective C++——条款23(第4章)
- 警惕缓冲区溢出(C中那些不安全的库函数)