arrays - 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
推荐阅读
- tensorflow-probability - 如何制作自定义张量流概率层?
- javascript - JavaScript中requestAnimationFrame中的frame是什么意思?
- python - 您如何处理这个特定程序中的(意外缩进)语法?
- ios - Flutter build ios 错误:为设备构建时遇到错误
- datetime - 如何使用 Moment 显示自定义日期和时间
- perl - 在连接 (.) 或字符串中使用未初始化的值 $login_output
- git - 来自差异排序差异的异常合并冲突?
- python - ODBC 使用托管标识连接到 SQL Server
- php - 我被难住了:如何使用 PHP Mailer 发送 HTML 表单
- java - 之后计算数字。(点)在java中