程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++ 字符串分割 (HDUOJ 2072)

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

編輯:C++入門知識

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;   }    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved