C中的工具是strtok
(GNU Manual,SUS V2 Spec)。您首次使用您的字符串和分隔符集呼叫strtok
。然後,對於後續部分,請使用NULL和分隔符集調用strtok
,它將繼續從停止的位置開始搜索。
#include <string.h>
#include <stdio.h>
int main(void) {
char x[] = "others:0.01 penalty:0.02 pdi:0.03 pdp:0.04 interest:0.05 principal:0.06 cbu:0.07 savings:0.08 bankcharge:0.09 grt:0.10";
char toPrint[sizeof(x) * 2];
char *a;
strcpy(toPrint,strtok(x," "));
strcat(toPrint,"\n");
while ((a=strtok(NULL," ")) != NULL) {
strcat(toPrint,a);
strcat(toPrint,"\n");
}
fputs(toPrint,stdout);
}
打印
others:0.01
penalty:0.02
pdi:0.03
pdp:0.04
interest:0.05
principal:0.06
cbu:0.07
savings:0.08
bankcharge:0.09
grt:0.10
注意strtok
修改原始陣列。在程序結束時,x
數組包含"1\02\03\04"
。所有的分隔符都被零覆蓋。還要注意的是字符串中的兩個連續的分隔符會導致strtok
產生一個空字符串""
的(缺失)值。
你要找的'strtok'或'strsep'。 'strsep'更好,但不便攜。 – cnicutar 2013-04-08 06:50:25
謝謝你的答案..它幫助了很多.. – epoy 2013-04-08 07:54:22