c - == 运算符跳过条件 if 语句,即使条件为 true

标签 c windows

尝试编写以下程序
所以这里 输入将为aaabbbccc

输出为abc

#include<stdio.h>
int main()
{
    char arr[10]={'0'};
    char ch;
    printf("enter input characters: ");

    for(int i=0;i<10;i++){
        ch=getchar();
        if(arr[i]=='0')//skips here even though the array element has'0' 
       //in it.
            arr[i]=ch;
    }
    for(int i=0;i<10;i++){
        if(arr[i]!='0')
            printf("%c",arr[i]);
}
        return 0;

}

最佳答案

char arr[10]={'0'};

您仅将第一个元素初始化为'0',所有其余元素都初始化为0(即整数值零,不是字符'0')。这当然意味着,除了当 i == 0 时,条件 arr[i] == '0' 将为

如果您希望所有元素都是字符'0',那么您需要显式地将所有元素初始化为它。

关于c - == 运算符跳过条件 if 语句,即使条件为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51582888/

相关文章:

c - Linux skb 分配失败

c# - 如何在datagridview中隐藏特定单元格值

c# - 使用新屏幕的控制台应用程序

c++ - 在 explorer.exe 上注入(inject)的 dll 中的无限循环

c# - 如何在windows universal app中创建app bar slide menu

c - 高效地重写 for 循环,C

c - 在 C 中用指针返回左值

无法在 C 中打印出字符串

c - 了解使用 SSE 指令进行矢量化

python - WIN32 程序可以使用 MYSQL 通过 Django 身份验证系统进行身份验证吗?