copier des caractères spécifiques d’une chaîne à une autre chaîne

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';