Comment combiner les trois char à un
J'ai eu trois char à l'intérieur de la matrice , qui contiennent X1, X2 et X3
char array[3]={X1,X2,X3}
Je veux combiner les trois données à l'intérieur du tableau pour un char
strcat(array[0]," ");
strcat(array[0],array[1]);
strcat(array[0]," ");
strcat(array[0],array[2]);
printf("%s",array[0])
Je m'attends à obtenir le résultat comme ceci "X1 X2 X3"
- Donc, vous avez trois personnages et que vous voulez créer une chaîne d'eux? Ou avez-vous des trois cordes et souhaitez les combiner en une seule chaîne de caractères?
- Vous souhaitez combiner les caractères dans un tableau à une chaîne où chaque personnage est séparée par un espace? Ou quelque chose d'autre?
Vous devez vous connecter pour publier un commentaire.
vous aurez besoin d'un octet de plus pour avoir un terminateur null.
donnera à votre abc
char array[] = "abc";
Je pense que vous voulez dire que vous voulez concaténer 3 caractères pour faire une chaîne de caractères.
Utilisation
sprintf
avec suffisamment de tableau:malloc
's valeur de retour. C'est une très mauvaise pratique, même pour un "jouet" exemple", depuis l'OP semble être un débutant.void*
peut être promu àchar*
avec aucune conversion n'est nécessaire. Bleh, enlevé lemalloc
exemple. Je vois ce que tu veux dire. Il peut ne pas allouer de la mémoire. MerciVous ne pouvez pas le faire de cette façon.
array
est à seulement 3 octets de long, de sorte que vous ne pouvez pas avoir de la chaîne "a b c", qui est de 5+1 = 6 octets de long en elle. Et, bien sûr, vous ne pouvez pas appelerstrcat(array[0], ...
depuisarray[0]
est un char, pas unchar *
.Je ne suis pas sûr de ce que vous cherchez, mais si vous êtes donné X1, X2 et X3 et voulez dans une chaîne de caractères séparés par des espaces, vous pouvez le faire :
Bien sûr, la
dest
argument doit être suffisamment grand, ou quelque chose de très méchant qui pourrait arriver.La façon dont vous utilisez
strcat
est incorrect.array[0]
est unchar
, ce qui signifie qu'il peut détenir qu'une seule lettre. Il ne peut pas tenir X1 avec un "" ou X2. Créer un autre suffisamment grand char tableau et puis vous pouvezstrcat
pour que.Vous pouvez convertir chaque char à une chaîne de caractères, puis de les enchaîner.
par exemple