Qu'est-ce que j'ai: donc je veux concaténer ne fonctionne pas car cmd code> en ajoutant une lettre de
v code>. p> < p> évidemment: p>
strcat code> n'accepte pas le paramètre
V [n] code> " code> n = int code>. p> p>
7 Réponses :
Que diriez-vous de
strcat(cmd,&v[3]);
Cela ajoutera plus d'un caractère et il ressemblera au-delà de la fin de la matrice à copier depuis qu'il n'y a pas de résiliation null.
Tout d'abord, assurez-vous que la variable 'cmd' a suffisamment de mémoire allouée.
Deuxièmement, la mention sur 'V [3]' est la valeur qui est un octet signé. Vous devez utiliser l'appel suivant sur STRNCAT (pas STRACAT): P>
strncat(cmd,&v[3],1);
problèmes avec votre approche.
C strings doit se terminer dans 0 octet, en d'autres termes Votre tableau V contient des caractères, non des chaînes et une solution: p> '\ 0' code> caractère. Utilisation de
"" code> ajoute que vous devez l'ajouter automatiquement, mais sinon vous devez l'ajouter vous-même, et toutes les fonctions de chaîne dépendent de cette étant là. P> LI>
strcat code> prend des chaînes. p> li>
ul>
snprintf(cmd + strlen(cmd), (sizeof cmd) - strlen(cmd), "%c", v[3]);
Merci! Si je peux m'occuper que CMD [] contient suffisamment d'espace, lequel vous pensez est la méthode la plus rapide?
Strncat est probablement le plus rapide de ceux-ci, mais le plus rapide est int Len = SHLEN (CMD); cmd [len] = V [3]; cmd [len + 1] = 0; code>. Notez la manière dont l'indexation de tableau commence à partir de 0, donc
Certains_cstring [Strlen (Certains_cstring)] code> est toujours 0.
Réponse approfondie inattendue - Merci d'avoir fourni de la valeur!
hmm. Pour autant que je sois bien compris, vous souhaitez ajouter un seul caractère de la deuxième matrice?
Vous devez donc utiliser : -) p> p>
J'ai choisi une autre façon de le faire, mais cela fonctionne également, c'est très simple. Merci :)
Le problème est que vous n'utilisez pas également STRACAT:
char *strcat (char *dest, char src);
faire pas em> strud> Utilisez ceci: & v [3] code> n'est pas un pointeur à un pointeur NULL terminé une chaîne! Utilisez plutôt p>
int len = strlen(cmd); cmd[len]=v[3]; cmd[len+1] = '\0';