一个众所周知的scanf()
功能的功能是可以传递的格式根据该格式进行扫描输入。如何读取字符串,直到两个连续的空格?
对于我的情况,我似乎无法找到搜索this和this文档的解决方案。
我有一个字符串(sInput
),如下所示:
#something VAR1 this is a constant string //some comment
凡VAR1
意味着是常量字符串this is a constant
的名称。
现在我扫描这个字符串是这样的:
if(sscanf(sInput, "%*s %s %s", paramname, constantvalue) != 2)
//do something
当然,当我输出paramname
和constantvalue
我得到的:
VAR1
this
但我想有constantvalue
遏制弦,直到两个连续的空格中找到(所以它会包含一部分this is a constant string
)。
因此,因此我想:
sscanf(sInput, "%*s %s %[^()]s", paramname, constantvalue)
sscanf(sInput, "%*s %s %[^ ]s", paramname, constantvalue)
但没有运气。有没有办法通过sscanf()
实现我的目标?或者我应该实施另一种存储字符串的方式吗?
你*是否使用['sscanf'](http://en.cppreference.com/w/c/io/fscanf)?请记住''%[“'格式不是正则表达式格式,它只是列出一组*字符。 –
@JoachimPileborg不,我没有,但它似乎最容易给我。 – moffeltje
我不认为这可以用'sscanf'完成。 –