Disons que j’ai 2 cordes
char str_cp[50],str[50]; str[]="how are you"
et je veux mettre le deuxième mot ex “are” dans une autre chaîne nommée str_cp donc si j’utilise
printf("%s ,%s",str,str_cp);
sera comme
how are you are
Comment puis je faire ça? (j’ai essayé la fonction strncpy mais elle ne peut copier que des caractères spécifiques depuis le début de la chaîne) existe-t-il un moyen d’utiliser un pointeur pointant sur le 4ème caractère de la chaîne et de l’utiliser dans la fonction strncpy pour copier les 3 sharepoint départ pour être le 4ème personnage?
J’ai essayé la fonction strncpy mais elle ne peut copier que des caractères spécifiques du début de la chaîne
strcpy
famille de fonctions strcpy
va copier à partir du point que vous lui dites de copier. Par exemple, pour copier du cinquième caractère, vous pouvez utiliser
strncpy(dest, &src[5], 3);
ou
strncpy(dest, src+5, 3); // Same as above, using pointer arithmetic
Notez que strncpy
ne terminera pas la chaîne pour vous sauf si vous frappez la fin de la chaîne source:
Aucun caractère NULL n’est implicitement ajouté à la fin de la destination si la source est plus longue que num (ainsi, dans ce cas, la destination ne peut pas être une chaîne C terminée par un caractère NULL).
Vous devez annuler le résultat vous-même:
strncpy(dest, &src[5], 3); dest[3] = '\0';