【问题标题】:Compare Strings in C [duplicate]比较 C 中的字符串 [重复]
【发布时间】:2014-04-29 02:36:51
【问题描述】:

我的天啊,我知道这应该非常简单,我已经尝试了我研究过的所有东西,但没有任何效果。我错过了一些简单的东西,请帮忙。我只想声明一个字符串,然后将其与另一个字符串进行比较。

我想声明一个类似 9 个字符的键。然后我想将此字符串与稍后提交的另一个字符串进行比较。以下是我所拥有的,无论我进行什么更改,我都会收到从不兼容类型到缺少令牌的错误。

char key[] ="kjherres";
char f[];

F="kjherres";    

if (key==f) {
 //run my code
}

我也试过 (strcmp) 无济于事。我错过了什么?请帮忙。

【问题讨论】:

  • 而且您的示例甚至无法编译。
  • "天哪,我知道这应该非常简单,我已经尝试了所有方法" 不,你没有。您甚至没有在 Google 中输入“C 中的字符串比较”...
  • 好的,我想通了,但我想我的问题是它不能正常工作。如果 (strcmp(key,f)==0) {}。但我什么也得不到。如果我使用 =!0 而不是零,它不会比较两者,为什么不比较 2?我错过了一些我知道的愚蠢的东西。我已经超过 15 年没有编写过 C 语言了,请原谅这里对原始代码的无知。

标签: c char


【解决方案1】:

比较字符串的方法是使用strcmp 函数。

if ( strcmp(key,f) == 0 ) {
    /* strings are the same */
}

你应该有一本好书或在线教程来学习 C。如果你来自 PHP 或其他一些高级语言,你有很多东西要学,如果你做得不对,你就是问大问题。字符串在 C 中不像在 PHP 等中那么微不足道。

此外,C 区分大小写。 Ff 是不同的名称。

【讨论】:

  • 应该在公立学校教人们入门级(但质量很好)C 以及数学。想想看,我想我今年早些时候在推特上发布了。
【解决方案2】:

好吧,我一如既往地错过了一件愚蠢的事情。有时我的思维比我的手指还要快。

问题是我从 url 参数中分配了 f 但我只读取了参数的第一个字符。请原谅我的无知,当速度太快时经常会发生这种情况。

【讨论】:

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