【发布时间】:2011-08-10 22:26:48
【问题描述】:
我需要查看我的string 是否与“hello X”匹配,其中 X 是任何int。
基本上我想知道它是“hello 1”还是“hello 100”。
我怎样才能做到最好?
编辑 0
感谢安德里亚·贝吉亚。
我正在像这样使用你的代码:
int dummy;
if (sscanf(string, "hello %d", &dummy))
/* matched */
【问题讨论】:
我需要查看我的string 是否与“hello X”匹配,其中 X 是任何int。
基本上我想知道它是“hello 1”还是“hello 100”。
我怎样才能做到最好?
编辑 0
感谢安德里亚·贝吉亚。
我正在像这样使用你的代码:
int dummy;
if (sscanf(string, "hello %d", &dummy))
/* matched */
【问题讨论】:
int dummy;
int n = sscanf(string, "hello %d", &dummy);
if (n == 1) {
// Matched
}
【讨论】:
scanf 是否是一项昂贵的操作?我想,它会比任何字符串比较函数都好,对吗?
INT_MIN..INT_MAX 范围之外,则代码的行为是未定义的。 (在实践中,我怀疑它在所有现有实现中的行为都相当合理。)
有几种解决方法。首先想到的是使用正则表达式,但这可能超出您的要求。
http://www.gnu.org/s/hello/manual/libc/Pattern-Matching.html
【讨论】: