首页 > 解决方案 > 如何计算C中字符的非零出现次数?

问题描述

我是 C 编程新手。我想问一下如何将 char 存储在 char 数组中?我想这样做的原因是因为我从我所做的计算中得到了一个字符。此计算返回一个由 4 组成的字符。我想查看 4 的每个字符并检查它们是否为“0”。如果没有,那么我将加一。这是一个替换示例:“0xf3”- 我正在尝试计算替换的汉明权重。这就是我尝试计算 char 包含多少非零的方法:

#include <stdio.h>

int main()
{

    char x = "0xf3";

    char s[10] = x;

    int lingh = strlen(s); 

    for (int i = 0; i<lingh;i++) {

        printf("%c\n", s[i] );
    }

    return 0;
}

我期望的输出类似于 s[] = {0,x,f,3}

标签: carrayschar

解决方案


此计算返回一个由 4 组成的字符

您是说您的计算返回一个由 4 个字符组成的字符。可能吗???

我猜你的计算返回一个由 4 个字符组成的字符串。例子0xf3

您不能存储类型变量string literalchar

char x = "0xf3";  //<---------------------

您可以将它们存储在一个字符数组中,例如char x[] = "0xf3";

这是修改后的代码

#include <stdio.h>
#include<string.h>  //<---- for strlen() and strcpy()

int main()
{

    char x[] = "0xf3";  //<----store in a char array

    char s[10];

    strcpy(s, x);  //<----copy in another array 

    int lingh = strlen(s); 

    for (int i = 0; i<lingh;i++) {

        printf("%c\n", s[i] );
    }

    return 0;
}

推荐阅读