如何比较char变量(c-strings)?

时间:2011-12-02 11:12:29

标签: c++ if-statement compare

#include <iostream>
using namespace std;

int main() {
    char word[10]="php";
    char word1[10]="php";

    if(word==word1){
        cout<<"word = word1"<<endl;
    }

return 0;
}

我不知道如何比较两个char字符串以检查它们是否相等。我目前的代码无效。

5 个答案:

答案 0 :(得分:8)

使用strcmp。

#include <cstring>
// ...
if(std::strcmp(word, wordl) == 0) {
// ...
}

答案 1 :(得分:7)

改为使用std::string个对象:

#include <iostream>
#include <string>
using namespace std;

int main() {
    string word="php";
    string word1="php";

    if(word==word1){
        cout<<"word = word1"<<endl;
    }

return 0;
}

答案 2 :(得分:5)

为证明c ++标记的合理性,您可能希望将wordword1声明为std::string。要比较它们,你需要

if(!strcmp(word,word1)) {

答案 3 :(得分:2)

提交的代码中的word和word1是指针。所以当你编码时:

word==word1

你正在比较两个内存地址(不是你想要的),而不是它们指向的c字符串。

答案 4 :(得分:-1)

#include <iostream>
**#include <string>** //You need this lib too

using namespace std;

int main() 
{

char word[10]="php";
char word1[10]="php";

**if(strcmp(word,word1)==0)** *//if you want to validate if they are the same string*
    cout<<"word = word1"<<endl;
*//or*
**if(strcmp(word,word1)!=0)** *//if you want to validate if they're different*
    cout<<"word != word1"<<endl;

return 0;``
}