| ||||
Évidemment, comme ça, ça sonne un peut sadique, mais ça peut dépanner. Mais quel est l’intérêt de faire bugger les strings ? Peut-être que bug est un peut fort. Disons plutôt une curiosité qu'il est bon de connaître. Et pour voir cette curiosité, nous allons faire du C et du C++ en même temps, pour que vous voyez qu'il n'y a aucune différence. Écrivez le petit programme qui suit :
Appelons le compilateur : g++ -Wall main.cpp -o test Et regardons le résultat : ./test mettons des mots mettons des mots Étonnant non ? Évidemment, je vous doit une petite explication. Vous avez remarqué la présence d'un caractère bizarre dans la chaîne de caractères, j'ai nommé '\0'. C'est le caractère nul. Et alors ? Le caractère nul est le caractère qui termine toutes les chaînes de caractères (et pas seulement les std::strings, mais aussi les char* et autres const char*). A mon tout de vous poser une question. Ça ne vous a jamais étonné d'appeler des fonctions comme printf sans passer la taille du tableau ou le nombre de caractères ? Et bien voilà la réponse, tout les fonctions comme printf, strstr & co, considèrent une chaîne de caractères jusqu'au caractère '\0', et pas un de plus. Donc, si un jour vous perdez la fin d'une chaîne de caractère, vous savez pourquoi. | ||||
|