设为首页 加入收藏

TOP

C++ 字符串分割 (HDUOJ 2072)
2014-11-24 07:56:42 来源: 作者: 【 】 浏览:0
Tags:字符串 分割 HDUOJ 2072

1. C++ 的boost库里有直接的分割函数split,可以将字符串按照指定的分割规则分割成字符串数组,类似Java。


具体使用参考:http://stackoverflow.com/questions/5734304/c-boost-split-string


2. 如果不使用boost库的话,可以使用里面的strtok函数进行字符串分割。


具体函数使用见:http://www.cplusplus.com/reference/cstring/strtok/


下面附上HDUOJ 2072的源代码,思路就是将每行的字符串按照空格分割成字符串数组,然后统计有多少个不同的字符串,这个时候刚好可以利用C++ STL里set这个类,相同的字符串只会存储一个。


#include
#include
#include
#include
#define PI 3.1415927
using namespace std;


int getNum(string s) {
set str;
const char *d = " ";
char *p;
p = strtok(const_cast(s.c_str()), d);
while(p) {
str.insert(p);
p = strtok(NULL, d);
}

return str.size();
}


int main()
{
string s;
while(getline(cin,s)) {
if(s=="#") break;
cout << getNum(s) << endl;
}
return 0;
}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++ 对象构造与析构以及内存布局 下一篇MATLAB下的程序调试

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·每日一道面试题-多线 (2025-12-26 06:20:17)
·java项目中哪些地方 (2025-12-26 06:20:14)
·Java真的是要没落了 (2025-12-26 06:20:12)
·C++ Lambda表达式保 (2025-12-26 05:49:45)
·C++ Lambda表达式的 (2025-12-26 05:49:42)