我有一个编码的字符串,我想转换回来,例如,如果我在字符串中有1表示在我的结构中我会有e.nums_lins=1
等等。
所以我想读取第一个元素,然后从字符串中删除,但一直尝试使用sscanf但没有进展。为什么这不起作用?
int x ;
sscanf(argumentos, "%d", &x) //argumentos is the initial string
printf ("%d",x); //1st element
printf ("\n");
print (argumentos); // rest of the string
答案 0 :(得分:1)
您可以考虑使用%n
格式说明符。它将存储从输入到目前为止扫描的字符数。您可以使用它来偏移已经从输入字符串中解析的内容。
int x, n;
sscanf(argumentos, "%d%n", &x, &n);
printf("%d\n", x);
printf("%s", argumentos + n); // rest of the string
答案 1 :(得分:0)
听起来你有像
这样的字符串numlins1
表示e.nums_lins
应设置为1。
如果就是这样,那么你需要像
这样的东西sscanf(argumentos, "numlins%d", &e.nums_lins);
这里我假设argumentos
包含字符串"numlins1"
。 scanf
将跳过常量字符串numlins
,然后解析数字并将结果数字设为e.nums_lins
。
(但是,当你在结尾处“打印其余字符串”时,我不确定你要做什么。)