C - 将int转换为char并将char附加到char

时间:2011-02-15 19:13:55

标签: c

我正在制作我的第一个并行应用程序,但我遇到了C的基础知识。我需要知道,如何将int转换为char,然后如何将一个char附加到另一个。

你可以帮助我,我会很高兴的。谢谢。

5 个答案:

答案 0 :(得分:14)

您可以使用itoa函数将整数转换为字符串。

您可以使用strcat函数在另一个字符串末尾的字符串中追加字符。

如果要将整数转换为字符,请执行以下操作 -

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

请注意,由于字符的大小小于整数,因此此转换可能会导致数据丢失。在这种情况下,最好将字符变量声明为unsigned(尽管您可能仍会丢失数据)。

要详细了解类型转换,请转到here

如果您仍有问题,请对此答案发表评论。

修改

转到here以获取更适合加入字符的示例。

下面给出了一些更有用的链接 -

  1. http://www.cplusplus.com/reference/clibrary/cstring/strncat/
  2. http://www.cplusplus.com/reference/clibrary/cstring/strcat/
  3. 第二次修改

    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
    

    第三次修改

    转到此link。在这里,您将找到itoa的实现。请改用它。

答案 1 :(得分:4)

将int转换为char只需在括号中指定类型:

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

注意:我认为您可能会丢失数据(如示例所示),因为类型大小不同。

无法将字符附加到字符上(除非您的意思是算术,然后是简单的运算符)。您需要使用字符串,AKA字符数组以及<string.h>strcatsprintf函数。

答案 2 :(得分:2)

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书的任何介绍中找到,或通过一些基本的在线搜索找到。

答案 3 :(得分:1)

int转换为char涉及丢失数据,编译器可能会警告您。

int中提取特定字节听起来更合理,可以这样做:

number & 0x000000ff; /* first byte */
(number & 0x0000ff00) >> 8; /* second byte */
(number & 0x00ff0000) >> 16; /* third byte */
(number & 0xff000000) >> 24; /* fourth byte */

答案 4 :(得分:0)

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

无法将一个字符附加到另一个字符。但是你可以创建一个字符数组并使用它。