Как посчитать ненулевые вхождения символа в C? - PullRequest
0 голосов
/ 24 октября 2018

Я новичок в программировании на C.Я хотел бы спросить, как я могу хранить символ в массиве символов?Причина, по которой я хочу это сделать, заключается в том, что я получаю символ из вычислений, которые я делаю.Это вычисление возвращает символ, состоящий из 4. Я хочу просмотреть каждый символ 4 и проверить, являются ли они "0".Если нет, то я буду увеличивать на единицу.Это пример замещения: «0xf3» - я пытаюсь вычислить вес Хемминга замещения.Вот как я пытаюсь подсчитать, сколько ненулевых символов состоит из:

#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 голосов
/ 24 октября 2018

Это вычисление возвращает символ, состоящий из 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...