需要一些帮助解析C中的字符串

时间:2014-03-19 19:38:28

标签: c string

使用fgets,我已经从文本文件中读取了一行。这条线可能是这样的:

# O^6+ + H -> O^5+ + H^+

或者可能是这样:

# Mg^12+ + H -> Mg^11+ + H^+

或者这个:

# Ne^10+ + He -> Ne^9+ + He^+

或许多其他可能性。

我试图从字符串中提取离子,电荷和原子项。

我试过这样的事情:

sscanf(line,"# %2s^%d+ + %2s",cs->ION,&(cs->Z),cs->ATOM);

我也试过这个:

sscanf(line,"# %[^^]s^%d+ + %2s",cs->ION,&(cs->Z),cs->ATOM);因为我正在拿起'^'字符。

我似乎无法让每个案例都适用。任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:0)

您尝试使用格式字符串

"# %[^^]s^%d+ + %2s"

几乎是正确的,除了%[^^]之后必须没有s,i。即

"# %[^^]^%d+ + %2s"

作品。