Exemple de strcat

Cette fonction retourne un pointeur vers la chaîne résultante dest. Les messages d`avertissement produits par les compilateurs de Microsoft suggérant que les programmeurs changent strcat et strncat à cette fonction ont été spéculés par certains pour être une tentative de Microsoft de verrouiller les développeurs sur sa plate-forme. La fonction my_strcat () accepte deux arguments de type pointer à CHAR ou (Char *) et retourne un pointeur vers la première chaîne i. Le travail de la première while est boucle est de déplacer le pointeur strg1 vers le dernier caractère i. Comme indiqué au début de la publication que cette fonction retourne le pointeur vers la chaîne de destination. Il retourne non-zéro si la chaîne source ne correspond pas et définit la mémoire tampon à la chaîne vide (un résultat désastreux si la chaîne d`origine n`est pas stockée ailleurs ou si l`appelant ignore le résultat de retour). Valeur de retour: la fonction strncat () retourne dest, le pointeur vers la chaîne de destination. Il est de la responsabilité du programmeur de s`assurer que la taille de la matrice pointée par strg1 est assez longue pour accueillir tous les caractères de strg2. Créons notre propre version de la fonction strcat (). Il prend la longueur réelle de la mémoire tampon en tant qu`argument et retourne le nombre d`octets qui seraient nécessaires permettant à l`appelant de réaffecter la mémoire tampon si possible. La deuxième boucle while ajoute le caractère un par un de la deuxième chaîne à la première chaîne.

À ce stade, la chaîne pointée par Start manque encore une chose, le caractère null (` 0 `). Tous prennent un argument supplémentaire qui encode la longueur de la mémoire tampon de destination et n`écrira pas passé cette fin de mémoire tampon. Le comportement de strcat () n`est pas défini lorsque la taille du tableau pointée par strg1 n`est pas assez longue pour accueillir tous les caractères de strg2. Les erreurs courantes sont de passer bufferSize, bufferSize-1 et bufferSize-strlen (buffer), qui peuvent tout de même produire un débordement de la mémoire tampon. La fonction strncat () en C++ ajoute le nombre de caractères donné d`une chaîne à la fin d`une autre chaîne. Comme vous pouvez le voir, nous avons ajouté la chaîne de type chaînon à la fin de la chaîne chaînon. L`ordre dans lequel nous passons les arguments à la fonction strcpy importe, le premier argument spécifie la chaîne de sortie tandis que l`argument seconds spécifie l`autre chaîne qui est ajoutée à la fin de la chaîne de sortie. Enfin, l`instruction return retourne le pointeur vers la première chaîne à la fonction appelante. Vous ne devez jamais passer un littéral de chaîne comme un premier argument, car si vous ne puis strcat () fonction va essayer de modifier un littéral de chaîne qui est un comportement non défini et peut provoquer le plantage du programme. Il est mal adapté à la nécessité plus commune d`obtenir le préfixe de la chaîne concaténée qui s`insère dans la mémoire tampon. En règle générale, la valeur de retour de strcat () est ignorée. Cela signifie que si nous affichons la valeur retournée de cette fonction, elle doit afficher la chaîne de destination (la chaîne chaînon dans notre exemple).

Il concatore la chaîne spécifiée à la fin de l`autre chaîne spécifiée. Permet de modifier notre code peu pour vérifier cela. Il est recommandé par de nombreux programmeurs qui strncat () est sûr par rapport à strcat () parce que strcat () ne vérifie pas la taille des données copiées, et des copies jusqu`à ce qu`il arrive à un terminateur null, il peut provoquer un débordement de la mémoire tampon tandis que strncat () vérifier la taille de les données copiées, et ne copiera que`n`octets.