C – casting int à char et append char à char

Je fais ma première application parallèle, mais je suis coincé avec les bases du C. J’ai besoin de savoir, comment convertir un caractère en caractère, puis comment append un caractère à un autre.

Si vous pouviez m’aider s’il vous plaît, je serais heureux. Je vous remercie.

Vous pouvez utiliser la fonction itoa pour convertir l’entier en chaîne.

Vous pouvez utiliser la fonction strcat pour append des caractères dans une chaîne à la fin d’une autre chaîne.

Si vous voulez convertir un entier en un caractère, procédez comme suit –

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

Notez que, la taille des caractères étant inférieure à celle du nombre entier, cette diffusion peut entraîner une perte de données. Dans ce cas, il est préférable de déclarer la variable de caractère comme unsigned (même si vous risquez de perdre des données).

Pour faire une lecture légère sur la conversion de type, allez ici .

Si vous rencontrez toujours des problèmes, commentez cette réponse.

modifier

Allez ici pour un exemple plus approprié de joindre des personnages.

Un lien plus utile est également donné ci-dessous –

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

Deuxième édition

 char msg[200]; int msgLength; char rankSsortingng[200]; ........... // Your message has arrived msgLength = strlen(msg); itoa(rank, rankSsortingng, 10); // I have assumed rank is the integer variable containing the rank id strncat( msg, rankSsortingng, (200 - msgLength) ); // msg now contains previous msg + id // You may loose some portion of id if message length + id ssortingng length is greater than 200 

Troisième édition

Allez à ce lien . Ici vous trouverez une implémentation de itoa . Utilisez cela à la place.

La conversion de caractère en caractère se fait simplement en affectant le type entre parenthèses:

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

Remarque: je pensais que vous perdriez peut-être des données (comme dans l’exemple), car les tailles de type sont différentes.

L’ajout de caractères à des personnages ne peut pas être effectué (à moins que vous ne parliez d’arithmétique, il s’agit alors d’opérateurs simples). Vous devez utiliser des chaînes, des tableaux de caractères AKA et des fonctions telles que strcat ou strcat .

 int myInt = 65; char myChar = (char)myInt; // myChar should now be the letter A char[20] mySsortingng = {0}; // make an empty ssortingng. mySsortingng[0] = myChar; mySsortingng[1] = myChar; // Now mySsortingng is "AA" 

Tout cela devrait se trouver dans n’importe quelle introduction au livre C ou dans des recherches en ligne élémentaires.

Casting int to char implique la perte de données et le compilateur vous préviendra probablement.

Extraire un octet particulier d’un int semble plus raisonnable et peut être fait comme ceci:

 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; 

Il n’y a aucun moyen d’append un caractère à un autre. Mais vous pouvez créer un tableau de caractères et l’utiliser.