Как сравнить переменные типа char (c-strings)? - PullRequest
0 голосов
/ 02 декабря 2011
#include <iostream>
using namespace std;

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

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

return 0;
}

Я не знаю, как сравнить две строки символов, чтобы убедиться, что они равны. Мой текущий код не работает.

Ответы [ 5 ]

9 голосов
/ 02 декабря 2011

Использовать strcmp.

#include <cstring>
// ...
if(std::strcmp(word, wordl) == 0) {
// ...
}
7 голосов
/ 02 декабря 2011

Используйте 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;
}
6 голосов
/ 02 декабря 2011

Чтобы оправдать тег c ++, вы, вероятно, захотите объявить word и word1 как std::string. Чтобы сравнить их как нужно

if(!strcmp(word,word1)) {
2 голосов
/ 24 февраля 2013

word и word1 в представленном вами коде являются указателями. Поэтому, когда вы код:

word==word1

вы сравниваете два адреса памяти (а это не то, что вам нужно), а не те c-строки, на которые они указывают.

0 голосов
/ 17 июня 2017
#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;``
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...