有段字串是這樣的
String a="123,124,125";
要把他變成陣列[123,124,125]怎么做?
uj5u.com熱心網友回復:
substring截取字串uj5u.com熱心網友回復:
供參考:#include<string>
#include<stdio.h>
using namespace std;
int main()
{
int b[10]={0},j=0,i=0;
string a = "1234,1245,125,126,127,12,1";
while(a[i]){
if(a[i] != ',')
b[j] = b[j]*10 + a[i]-'0';
else j++;
i++;
}
for(i=0;i<=j;i++)
printf("%d ",b[i]);
return 0;
}
uj5u.com熱心網友回復:
僅供參考:#include <stdio.h>
char s[]="123 ab 4";
char *p;
int v,n,k;
void main() {
p=s;
while (1) {
k=sscanf(p,"%d%n",&v,&n);
printf("k,v,n=%d,%d,%d\n",k,v,n);
if (1==k) {
p+=n;
} else if (0==k) {
printf("skip char[%c]\n",p[0]);
p++;
} else {//EOF==k
break;
}
}
printf("End.\n");
}
//k,v,n=1,123,3
//k,v,n=0,123,3
//skip char[ ]
//k,v,n=0,123,3
//skip char[a]
//k,v,n=0,123,3
//skip char[b]
//k,v,n=1,4,2
//k,v,n=-1,4,2
//End.
uj5u.com熱心網友回復:
兩種方法,一種簡答的boost庫里的函式boost::split,另一種是自己寫想學習可以私信我
uj5u.com熱心網友回復:
結合#3樓趙老師的方法,供參考:#include <stdio.h>
int main()
{
char s[]="1234,1245,125,126,127,12,1";
char *p;
int v,n,k,i=0,b[10]={0};
p=s;
while (1) {
k=sscanf(p,"%d%n",&v,&n);
if (1==k){
b[i++]=v;
p+=n;
} else if (0==k) {
p++;
} else {//EOF==k
break;
}
}
for(int j=0;j<i;j++)
printf("%d ",b[j]);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/284377.html
標籤:C++ 語言
上一篇:wifstrem的問題?
下一篇:C++輸出菱形