【问题标题】:"hello x" - string compare"hello x" - 字符串比较
【发布时间】: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 */

【问题讨论】:

    标签: c string parsing


    【解决方案1】:
    int dummy;
    int n = sscanf(string, "hello %d", &dummy);
    if (n == 1) {
        // Matched
    }
    

    【讨论】:

    • 非常感谢。如果我必须多次执行 scanf 是否是一项昂贵的操作?我想,它会比任何字符串比较函数都好,对吗?
    • 如果您担心性能,请使用分析器并进行测量!
    • 这可能已经足够了。但是,不管你信不信,如果匹配的整数在INT_MIN..INT_MAX 范围之外,则代码的行为是未定义的。 (在实践中,我怀疑它在所有现有实现中的行为都相当合理。)
    • 基思汤普森:提出了很好的观点。就我而言,这已经足够了。
    【解决方案2】:

    有几种解决方法。首先想到的是使用正则表达式,但这可能超出您的要求。

    http://www.gnu.org/s/hello/manual/libc/Pattern-Matching.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-06
      • 1970-01-01
      相关资源
      最近更新 更多