如何计算C中一个char的非零出现次数?

时间:2018-10-24 16:54:21

标签: c arrays char

我是C编程新手。我想问一下如何在char数组中存储char?之所以要这样做,是因为我从自己进行的计算中得到了一个char。此计算返回一个由4组成的char。我想查看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}

1 个答案:

答案 0 :(得分:0)

  

此计算返回的字符为4

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

我猜您的计算返回的字符串包含4个字符。示例0xf3

您不能在string literal类型的变量中存储char

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;
}