如何比较C ++中的单字符串字符?

时间:2018-01-01 06:44:24

标签: c++

我想在我的SC中比较两个单个字符串变量,如果它们不同,我想在我的int数据中添加+1"打架",让我们说 X [ 1] = A,Y [1] = B,为战斗添加+1

    int N;
    char X;
    char Y;

    int fights = 0;

    1 <= N <= 100000;

    for (int i = 0; i < N; i++){
        cin >> X[i];
        cin >> Y[i];

        if (Y[i] != X[i]){
           fights += 1;
        }     
    }
    cout << fights;

    return 0;
}

然而,当我输入不同的字母并且没有为 战斗 添加+1时,程序似乎没有检测到任何差异。

3 个答案:

答案 0 :(得分:0)

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

 int main(){


    char X[10]; 
    char Y[10]; 
    int n;
    int fights = 0;
    cin >> X; 
    cin >> Y;
    if(strlen(X) > strlen(Y))
         n = strlen(X);
    else
       n = strlen(Y);
    for (int i = 0; i < n; i++){
        if(X[i]!=Y[i]) {
            fights +=1;
        }
      else 
        ;     
     }
    cout << fights;

    return 0;
}

这将正确进行比较!

答案 1 :(得分:-2)

将X,Y更改为数组。

工作代码:

int N;
char X[100001];   
char Y[100001];

int fights = 0;

1 <= N <= 100000;

for (int i = 0; i < N; i++){
    cin >> X[i];
    cin >> Y[i];

    if (Y[i] != X[i]){
       fights += 1;
    }     
}
cout << fights;

return 0;

}

答案 2 :(得分:-2)

您不是将变量X和Y声明为数组,而是将其用作会产生错误的变量!你首先必须指定它才能使用它!

  #include<iostream>
#include<cstring>
using namespace std;
 int main(){

int N;
    char X[10]; //specify any size according to ur need 
    char Y[10]; // but size specification of array is compulsary

    int fights = 0;

    // 1 <= N <= 100000;         <-- i dont think this is required
    // just use a no. for conditional expression in for 
    // here there is no need for comparing it with other variable
    for (int i = 0; i < 10; i++){
        cin >> X; 
        cin >> Y;


        if (strcmp(X,Y)==0){
           fights += 1;
        }     
    }
    cout << fights;

    return 0;
}

这里你可以在两个变量中输入一个10个字符的输入(你可以根据你的需要改变它)如果它们都具有完全相同的字符,它将不会添加任何其他明智的1将被添加!