Как сохранить значение символа *? - PullRequest
0 голосов
/ 05 февраля 2019

Я нашел следующий код для преобразования int / char в двоичный файл:

char* int2bin(int value, char* buffer, int bufferSize) {
    char *nextChar = buffer + bufferSize-1;            // location to write the least significant bit

    *nextChar = 0;  // add the null terminator

    do {
        nextChar--;
        (value & 1) ? *nextChar  = '1' : *nextChar  = '0'; // if set set to '1' else '0'
        value = value>>1;
        if (nextChar == buffer)
          break;
    } while (value);
    return nextChar;
 }

Я знаю, что могу сделать следующее

 binString = int2bin(inputBuff[i], binaryBuffer, 17);
 fprintf (WriteTo, "%s\n", binString);

Но я бы хотел сейчас сохранитьchar Я только что попал в binString, один из двоичных битов преобразования, в массив символов, который я хочу передать в другом месте, но из-за недостатка понимания указателей мне было трудно понять, как его получить.

Я попытался сделать это, объявив массив символов и попытавшись сохранить бит:

char inputBuffStr[32];

, а затем ...

binString = int2bin(inputBuff[i], binaryBuffer, 17);
inputBuffStr[i] = binString;

, где я увеличивается набит как часть анализа ввода, а binString имеет тип char *.

Я получаю сообщение об ошибке: значение типа "char *" нельзя присвоить объекту типа "char" "inputBuffStr [i] = binString; "

Если бы кто-нибудь мог объяснить, как я могу получить фактические 0 или 1, присутствующие в binString?Кажется, я не могу понять, как я могу выполнить fprintf значения, но не могу вывести его в свой массив символов?

1 Ответ

0 голосов
/ 05 февраля 2019

Вам просто нужно использовать strcpy, который копирует строку в стиле C, определенную \0:

char inputBuffStr[32];
strcpy(inputBuffStr,binString);

Кстати: ваш вопрос не имеет ничего общего с C ++, поэтому я изменил тегдо C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...