数组索引不显示字符
The array index doesnt show the character
我有这个代码:
#include <stdio.h>
int main(){
char s1[30] = "This is a sentence";
for(int i = 0; i<sizeof(s1);i++){
if(s1[i] = ' '){
printf("+");
}
}
return 0;
}
当我尝试循环数组以查找所有空格时,会发生这种情况:
Output: ++++++++++++++++++++++++++++ //30 pluses.
为什么我的程序没有输出 3 个加号?
编辑:我的问题只是一个简单的错别字错误,如果你不明白这里有什么问题,看看接受的答案。
在
if 语句中将=
更改为==
。
在条件语句中,您正在为s[ i ]
分配空间(operator =
)。您想比较它们(operator ==
)。
尝试
if (s[ i ] == ' ')
s[ i ] = ' '
始终为 true,因为赋值的结果是分配的值(空格)。这个值被隐式转换为bool
(0
= false
,其他任何值 = true
)。由于空格以 ASCII 格式32
,因此它将始终true
。
参考资料 - 赋值运算符、比较运算符、ASCII 表
这样做:
if(s1[i] == ' '){
printf("+");
}
=
是赋值运算符。要比较两个值,您需要使用运算符==
。您已经使用了该赋值运算符始终返回 true =
,因此+
始终打印出来。
相关文章:
- 字符串-C++后显示的随机字符
- 显示基于用户输入的整数的字符
- 在将字符插入 2d 字符串时如何不显示空字符?
- 为什么strlen(s)与s的大小不同,为什么cout-char显示的是字符而不是数字
- 为什么C++在将浮点数转换为字符时没有显示缩小转换错误?
- 链表显示垃圾字符
- 在大小为 10 的 char 数组中输入超过 10 个字符的字符串并输出时,它会显示整个数组而不是前 10 个数组.为什
- 程序,它接受用户输入的字符并按出现的降序显示它们
- 使用带有诅咒库的 stdscr 创建窗口,在边框而不是线条中显示不需要的笑脸字符
- 如何检查输入是否为字符并显示它是"invalid input",否则它将按原样运行
- 如何在不将其转换为 ASCII 字符的情况下显示 QByteArray 的十六进制值
- 如何从显示板将字符显示为字符串?
- 将终端设置为原始模式:仅在按下下一个键后显示字符
- 在QLineEdit中显示和编辑转义字符
- 我的程序没有将字符显示在屏幕上
- C++控制台字符显示
- C++特殊字符显示为"?"
- 将字符显示为没有显式强制转换的整数
- 为什么sizeof为一个字符显示4个字节
- 使用'uxxxx'格式定义的字符显示错误的字符