字符串转字符数组的问题
请教一个字符串转字符数组的问题,比如:
string strname = "aaa,bb,ccc,ddd,e,ffff"
转换成 string[] strname = {"aaa","bb","ccc","ddd","e","ffff"}
谢谢大虾了
[解决办法]
既然用的是string类型,那自然是用c++,自己写一个就行
- C/C++ code
#include <string>
#include <iostream>
using namespace std;
int main()
{
string s = "abc,def,hijk";
string sub[10];
char tmp[10];
int i = 0,count = 0, k = 0;
for(; i < s.length(); ++i)
{
if(s[i] == ',')
{
tmp[k] = '\0';
sub[count++] = tmp;
k = 0;
}
else
{
tmp[k++] = s[i];
}
}
tmp[k] = '\0';
sub[count++] = tmp;
for(i = 0; i < count; ++i)
cout < <sub[i] < <endl;
return 0;
}
[解决办法]
c_spark 好快哦
写了我就帖下 呵呵
- C/C++ code
#include <string>#include <iostream>using namespace std;#define MAX 10main(){ int i=0,j=0; string strname = "aaa,bb,ccc,ddd,e,ffff"; string strname1[MAX]; string::size_type pos=0,prev_pos=0; while((pos=strname.find_first_of(',',pos))!=string::npos) { strname1[i]=strname.substr(prev_pos,pos-prev_pos); prev_pos=++pos; i++; } strname1[i]=strname.substr(prev_pos,pos); while(j<=i) { cout<<strname1[j]<<endl; j++; }}
[解决办法]
呵呵
写好了:
- C/C++ code
#include <iostream>#include <string> using namespace std; int main() { cout << "Plz input a string:\n"; string strname ; getline(cin, strname); cout << strname << endl; int i = 0, j = 0, k = 1; //k为将要分得的string的个数 string::iterator p = strname.begin(); while (p != strname.end()) { if (*p++ == ',') { k++; } } int douhao = 0; int *count = new int[k + 1]; //count数组计算两端以及逗号的位置 count[0] = -1; count[k] = (strname.end() - strname.begin() ); p = strname.begin(); while (p != strname.end()) { if (*p == ',') { douhao++; count[douhao] = (p - strname.begin()); } p++; } string *mystr = new string[k]; p = strname.begin(); cout << "I get:\n"; for (int i = 0; i < k; i++) { mystr[i] = string(p + 1 + count[i], p + count[i+1]); //取得分开后的字符串 cout << mystr[i] <<endl; } delete []count; delete []mystr; }