C++ string
来源:互联网 发布:笔记本电脑录视频软件 编辑:程序博客网 时间:2024/05/19 03:44
简介
C、C++在处理字符串时有点不太方便,像java、python可能一条语句处理的事,C++则有点不方便,本文参考了一篇博文,利用STL中的string类写了一个函数,并写了一个AC的demo,用于判断字符串split分隔之后的数之和是否与指定数字相等。
1.运行效果
2.string、int互转
#include <string>#include <sstream>stringstream ss;int num;string str;ss << str; // ss << numss >> num; // ss >> str
3.完整代码
#include <iostream>#include <string>#include <sstream>#include <vector>using namespace std;int split(const string& str, vector<int>& ret_, string sep = ","){ if (str.empty()) { return 0; } string tmp; string::size_type pos_begin = str.find_first_not_of(sep); string::size_type comma_pos = 0; while (pos_begin != string::npos) { comma_pos = str.find(sep, pos_begin); if (comma_pos != string::npos) { tmp = str.substr(pos_begin, comma_pos - pos_begin); pos_begin = comma_pos + sep.length(); } else { tmp = str.substr(pos_begin); pos_begin = comma_pos; } if (!tmp.empty()) { //string -> int stringstream ss; int int_tmp; ss << tmp; ss >> int_tmp; ret_.push_back(int_tmp); tmp.clear(); } } return 0;}int output_vector(vector<int> vec){ if(vec.empty()) { cout << "The vector is empty!" << endl; return 0; } vector<int>::iterator iter; for(iter = vec.begin(); iter != vec.end(); iter++) cout << *iter << " "; cout << endl; return 0;}int sum_of_vector(vector<int> vec){ if (vec.empty()) { cout << "The vector in sum function is empty!" << endl; return 0; } else { int sum = 0; for (int i = 0; i < vec.size(); i++) { sum += vec[i]; } return sum; }}int main(){ string str; int sum; //循环判断测试用例 while (cin >> str) { cin >> sum; vector<int> vec; split(str,vec,","); //output_vector(vec); //cout << "Sum : " << sum << endl; int accout_sum = sum_of_vector(vec); if(sum == accout_sum) cout << "Yes" << endl; else cout << "No" << endl; } return 0;}
参考文献
1 . C++ 使用STL string 实现的split,trim,replace-修订
0 0
- c++String
- c++string
- C++string
- C#string
- c string
- c++-->String
- C#string
- c++string
- string.c
- String(C++)
- c++string
- c++:String
- C++----string
- c++string
- C string
- string C
- 【C/C++】再探string
- C/C++:string.c_str()
- char类型0xff转int细节
- 在一定目录下寻找给定的文件
- java保留小数点后几位,不足的用0补
- OpenGL系列教程
- 第三方登录
- C++ string
- hdoj5631Rikka with Graph【并查集】
- 商品sku数据库设计
- hdu1811Rank of Tetris(并查集+拓扑排序)
- HTML练习-1
- C++之next_permutation
- iOS-触摸与手势之事件分发原理
- div与焦点事件的问题
- Java EE之JDBC