摘抄书上一个逆序字符串的例子(可根据不同的符号,比如*&,.;来拆分单词)
今天看书,看到这个例子感觉不错。抄下来,兴许以后能用上。
先给个例子吧:
随意的一个字符串,比如pots * pans,本程序会输出stop * snap
下面给出代码,大家可以根据自己的需要来更改。
1 // StandLibP476.cpp : 定义控制台应用程序的入口点。
2 //
3
4 #include "stdafx.h"
5 #include <iostream>
6 #include <string>
7
8 using namespace std;
9
10 int _tmain(int argc, _TCHAR* argv[])
11 {
12 const string delims( " \t,.;" ); //拆分单词的标记
13 string line;
14
15 while ( getline(cin,line) ) {
16 string::size_type begIdx, endIdx;
17
18 begIdx = line.find_first_not_of( delims );
19
20 while ( begIdx != string::npos ) {
21
22 endIdx = line.find_first_of( delims, begIdx );
23
24 if ( endIdx == string::npos ) { //只有一个单词,固把endIdx赋值为整个字符串的结尾
25 endIdx = line.length();
26 }
27
28 for ( int i = endIdx - 1; i >= static_cast<int> (begIdx); --i ) {
29 cout << line[i];
30 }
31 cout << ' ';
32 begIdx = line.find_first_not_of( delims, endIdx );
33 }
34 cout << endl;
35 }
36
37 return 0;
38 }
代码摘自C++ 标准程序库P476,哪位有好的方法欢迎交流。