C - приведение int к char и добавление char к char - PullRequest
12 голосов
/ 15 февраля 2011

Я делаю свое первое параллельное приложение, но я застрял с основами языка C. Мне нужно знать, как привести int к char, а затем как добавить один char к другому.

Если бы вы могли мне помочь, я был бы рад.Спасибо.

Ответы [ 5 ]

15 голосов
/ 15 февраля 2011

Вы можете использовать функцию itoa для преобразования целого числа в строку.

Вы можете использовать функцию strcat для добавления символов в строку в конце другогоstring.

Если вы хотите преобразовать целое число в символ, просто выполните следующее -

int a = 65;
char c = (char) a;

Обратите внимание, что, поскольку символы меньше по размеру, чем целое число, это приведение может привести к потереданных.В этом случае лучше объявить символьную переменную как unsigned (хотя вы все равно можете потерять данные).

Чтобы получить легкие сведения о преобразовании типов, перейдите сюда .

Если у вас все еще проблемы, прокомментируйте этот ответ.

Редактировать

Перейти здесь для более подходящего примера объединения символов.

Ниже приведена еще одна полезная ссылка -

  1. http://www.cplusplus.com/reference/clibrary/cstring/strncat/
  2. http://www.cplusplus.com/reference/clibrary/cstring/strcat/

SecondРедактировать

char msg[200];
int msgLength;
char rankString[200];

........... // Your message has arrived
msgLength = strlen(msg);
itoa(rank, rankString, 10); // I have assumed rank is the integer variable containing the rank id

strncat( msg, rankString, (200 - msgLength) );  // msg now contains previous msg + id

// You may loose some portion of id if message length + id string length is greater than 200

Третье редактирование

Перейти по этой ссылке .Здесь вы найдете реализацию itoa.Используйте это вместо этого.

4 голосов
/ 15 февраля 2011

Приведение int к типу char выполняется просто путем присвоения типа в круглых скобках:

int i = 65535;
char c = (char)i;

Примечание: я думал, что вы можете потерять данные (как в примере), потому что размеры шрифтов разные.

Добавление символов к символам невозможно (если вы не имеете в виду арифметику, тогда это простые операторы). Вам нужно использовать строки, массивы символов AKA и функции <string.h>, такие как strcat или sprintf.

.
1 голос
/ 15 февраля 2011

Приведение int к char включает потерю данных, и компилятор, вероятно, предупредит вас.

Извлечение определенного байта из int звучит более разумно и может быть сделано так:

number & 0x000000ff; /* first byte */
(number & 0x0000ff00) >> 8; /* second byte */
(number & 0x00ff0000) >> 16; /* third byte */
(number & 0xff000000) >> 24; /* fourth byte */
1 голос
/ 15 февраля 2011
int myInt = 65;

char myChar = (char)myInt;  // myChar should now be the letter A

char[20] myString = {0}; // make an empty string.

myString[0] = myChar;
myString[1] = myChar; // Now myString is "AA"

Все это можно найти в любом вступлении к книге C или в простом поиске в Интернете.

0 голосов
/ 15 февраля 2011
int i = 100;
char c = (char)i;

Нет способа добавить один символ к другому.Но вы можете создать массив символов и использовать его.

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