Compte tenu de début et de fin indices, comment puis-je copier une partie d'une chaîne en C?
En C, comment puis-je copier une chaîne de début et de fin d'indices, de sorte que la chaîne ne sera que partiellement copié (depuis le début de l'indice à la fin de l'index)?
Ce serait comme 'C copie de chaîne' strcpy
, mais avec un begin et un end index.
Vous devez vous connecter pour publier un commentaire.
Avez-vous vérifié strncpy?
Vous devez réaliser que commencer et fin définit en fait un num d'octets à copier à partir d'un endroit à l'autre.
strncpy
est une bonne réponse. stackoverflow.com/questions/2889421/...Utilisation strncpy
par exemple
Cela suppose que vous avez
dest
est assez grand.endIndex
est plus grand quebeginIndex
beginIndex
est à moins destrlen(src)
endIndex
est à moins destrlen(src)
abc
de"abc"
, vous feriez:strncpy(dest, src + 1, strlen(src) - 2);
. Ce doit être la accepté de répondre.Suffit d'utiliser memcpy.
Si la destination n'est pas assez grand, strncpy ne sera pas nulle fin. si la destination est énorme par rapport à la source, strncpy seulement remplit la destination avec des valeurs null après la chaîne. strncpy est inutile, et ne convient pas pour la copie de chaînes.
strncpy est comme memcpy sauf qu'il remplit de la destination avec les valeurs null une fois qu'il en voit un dans la source. Il est absolument inutile pour les opérations de la chaîne. C'est pour fixe avec 0 collier de dossiers.