微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C:无法比较字符

如何解决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;
}

解决方法

这是不正确的:

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

您正在比较字符,而不是字符串,因此应该是:

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

您收到的错误消息:

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

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

您对此有相同的问题:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。