这是我的Mystr
值:
其他:0.01罚款:0.02 pdi:0.03 pdp:0.04利息:0.05 本金:0.06 cbu:0.07节省:0.08银行充电:0.09 grt:0.10
我想要的输出:
他人:0.01
罚款:0.02PDI:0.03
PDP:0.04
感兴趣的:0.05
主要:0.06
CBU:0.07
节约:0.08
bankcharge:0.09
GRT:0.10
我希望将其分配给不同的变量。我该怎么做?
答案 0 :(得分:3)
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
为(缺失)值生成空字符串""
。
答案 1 :(得分:0)
如果你是用Python编写代码,那么你很幸运能使用split()。 在C中,您可以使用strtok http://www.cplusplus.com/reference/cstring/strtok/