我正在尝试理解sscanf
格式。是否可以将C字符串数组输出到(下面的代码给出了一个段错误,这是提示问题的原因)?此外,当尝试仅为字符串采用特定字符时,格式为%[abc]s
,其中abc
是要保留的字符集?
char s[] = "This is a 345.454 test";
char str[6][256];
double f;
sscanf(s,"%s %*s %*s %f %s",s[0],f,s[1]);
for(int i=0; i<2; i++)
printf("%s\n",s[i]);
答案 0 :(得分:3)
重写sscanf
行,如下所示 -
sscanf(s,"%s %*s %*s %lf %s",str[0],&f,str[1]);
^address of float variable required
在数组for loop
的{{1}}打印值中。
请在此处查看工作代码 - https://ideone.com/hFpvDJ
答案 1 :(得分:0)
s[0]
是一个字符,但是你有一个%s
格式,它需要一个字符串(字符的地址,序列中的第一个)解析后的值应该去哪里。