Sscanf忘了忘记表达式中的逗号

时间:2016-06-16 18:08:27

标签: format scanf

我正在使用scanf,尝试在逗号之前读取表达式。

sscanf(some_string,
      "%s %[ .0-9a-zA-Z!@:/|-_^,],read_other_stuff:%s....]", 
      &string1, &string2... etc);

Sscanf正确读取所有内容,直到%[。0-9a-zA-Z!@:/ | -_ ^,]。正如预期的那样,这段格式会占用所有其余字符串,而不会停留在逗号处。

如何以逗号结束,并将其他内容读取(包括空格,逗号以外的标点符号等)

1 个答案:

答案 0 :(得分:0)

  1. 要将字符串解析为,,代码可以使用strchr(some_string, ',')

  2. 要使用sscanf(),请使用2个电话

    int n = 0;
    sscanf(some_string, "%*[^,]%n", &n);
    // some_string[n] is either \0 or ,
    
    char string1[100];
    string1[0] = '\0';
    sscanf(&some_string[n], ",%99s", string1);
    
    puts(string1);
    
  3. 推荐#1