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

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

你可以帮我,我很高兴。 谢谢。

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

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

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

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/

第二次编辑

 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的实现。 改用它。

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

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

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

不能将字符附加到字符上(除非你的意思是算术,然后它是简单的运算符)。 您需要使用字符串,AKA字符数组和函数,如strcatsprintf

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

intchar涉及丢失数据,编译器可能会警告您。

int提取特定字节听起来更合理,可以像这样完成:

 number & 0x000000ff; /* first byte */ (number & 0x0000ff00) >> 8; /* second byte */ (number & 0x00ff0000) >> 16; /* third byte */ (number & 0xff000000) >> 24; /* fourth byte */ 
 int i = 100; char c = (char)i; 

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