首页 > 解决方案 > C:字符比较失败

问题描述

我有如下的C代码。我有abcd输入,我想要的输出是aBcd.

但是在第 行line1[i] == "b",我收到错误说我正在比较指针和整数......为什么“b”是整数?

我尝试"b" == line1[i]了但是没有用。我怎样才能把它修好?谢谢

#include<stdio.h>
#include<string.h>

int main(){

  char line1[10]="abcd";
  char line2[10];
    strcpy(line2, line1);

  int i;
  for (i = 0; i < 10; ++i)
  {
    if(line1[i] == "b"){
      line2[i] = "B";
    }
  }

  printf("%s",line2);
  return 0;
}

标签: arrayscstringchar

解决方案


这是不正确的:

 if (line1[i] == "b")

您正在比较字符,而不是字符串,所以它应该是:

if (line1[i] == 'b')

您收到的错误消息:

我收到错误说我正在比较指针和整数...为什么“b”是整数?

它实际上意味着“b”是一个指针(它是 char 指针),而你的line1[i]是整数(实际上是一个 char)。

你有同样的问题:

line2[i] = "B";  //<-- should be 'B' instead

推荐阅读