你自己寫一個函數(shù)不就可以實現(xiàn)了。一個一個字符依次檢測,遇到逗號之前的存入一個數(shù)組,遇到逗號后又存入另一個數(shù)組,這樣依次進行。
創(chuàng)新互聯(lián)專注于亞東企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計,成都商城網(wǎng)站開發(fā)。亞東網(wǎng)站建設(shè)公司,為亞東等地區(qū)提供建站服務(wù)。全流程專業(yè)公司,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
strtok這么好用為什么要自己寫一個呢?
逗號不是運算符號的,只是分割語句或參數(shù)的
比如圖中:
int x,y,z;
逗號表示一種并列關(guān)系,三個變量都是整形的
x=3;y=3;z=1;
三個賦值語句,不要單純的當做數(shù)學(xué)里的等號,要理解成=是一種操作符,表示右側(cè)的值賦值給左邊
最后一句printf("%d,%d,%d",...,...,...)
這里,printf是一個函數(shù),一個函數(shù)就有輸入,有輸出,輸入可以是多個,逗號就是分割多個輸入的
printf本身是格式化輸出,引號中表示輸出格式,%d的位置就是一個整形數(shù)值,對應(yīng)函數(shù)后面相應(yīng)位置參數(shù)的值,其他字符都會保留的,也就是輸出里逗號的來源。
先將所有的讀進來存在一個字符串中,然后用字符分割函數(shù)strtok()//具體可參見API
例如:
char str[] = "now # is the time for all # good men to come to the # aid of their country";
char delims[] = "#";
char *result = NULL;
result = strtok( str, delims );
while( result != NULL ) {
printf( "result is \"%s\"\n", result );
result = strtok( NULL, delims );
}
以上代碼的運行結(jié)果是:
result is "now "
result is " is the time for all "
result is " good men to come to the "
result is " aid of their country"
#includeiostream
#includevector
#includesstream
usingnamespacestd;
intmain()
{
strings;
vectorintv;
cins;
//將讀入的字符串轉(zhuǎn)化成is流
istringstreamis(s);
intinter;
charch;
while(isinter)//只能讀出is流中的一個整形讀進inter
{
v.push_back(inter);
isch;//然后讀一個字符型讀進ch
}
for(inti=0;iv.size();i++)
coutv[i]"";
coutendl;
return0;
}
擴展資料
C語言的字符串按照指定字符串分割操作
#includestdio.h
#pragmawarning(disable:4996)
#includestdlib.h
intmain()
{
charstr[]="我,是,中國,程序員";
char*ptr;
char*p;
printf("開始前:str=%s\n",str);
printf("開始分割:\n");
ptr=strtok(str,",");
while(ptr!=NULL){
printf("ptr=%s\n",ptr);
ptr=strtok(NULL,",");
}
getchar();
}