当前位置:编程学习 > C/C++ >>

C++ 字符串分割 (HDUOJ 2072)

1. C++ 的boost库里有直接的分割函数split,可以将字符串按照指定的分割规则分割成字符串数组,类似Java。
    具体使用参考:http://stackoverflow.com/questions/5734304/c-boost-split-string
 
2. 如果不使用boost库的话,可以使用<string.h>里面的strtok函数进行字符串分割。
    具体函数使用见:http://www.cplusplus.com/reference/cstring/strtok/
 
下面附上HDUOJ 2072的源代码,思路就是将每行的字符串按照空格分割成字符串数组,然后统计有多少个不同的字符串,这个时候刚好可以利用C++ STL里set这个类,相同的字符串只会存储一个。
[cpp]   
#include <iostream>  
#include <set>  
#include <iomanip>  
#include <cmath>  
#define PI 3.1415927  
using namespace std;  
  
int getNum(string s) {  
    set<string> str;  
    const char *d = " ";  
    char *p;  
    p = strtok(const_cast<char*>(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++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,