Bonjour, j ai plusieurs questions concernant les chaines de caractères...
1) Je viens de parcourir ce tuto et je me suis rendu compte que, par exemple, la fonction
ne s'occupe pas d'allouer la memoire nécessaire à la copie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part strcpy(char * out, const char * in)
Si bien qu en fait je dois plutot ecrire un truc du genre :
J'imagine que c'est pour qu'on n'oublie pas au passage de liberer out.
Code : Sélectionner tout - Visualiser dans une fenêtre à part out = malloc(sizeof(char) * (strlen(in)+1)); strcpy(out,in);/* blabla */; free(out);
Du coup je me pose une question sur strcat(char * Res, const char * toAppend)...
Est ce que pour concatener deux chaines de caracteres je dois en fait faire quelquechose du genre :
Il doit y avoir un truc qui m’échappe parce que ça me parait pour le moins lourdingue...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 char* Res2=malloc(sizeof(char) * (strlen(Res)+strlen(toAppend)+1); strcpy(Res2,Res); free(Res); /* Je suppose que Res a été alloué... */ strcat(Res2,toAppend); Res = Res2;
2) Je ne la vois pas dans le tuto mentionné plus haut mais existe-t-il une fonction
qui pour un appel du type
Code : Sélectionner tout - Visualiser dans une fenêtre à part char* commeprintf(const char* S,...)me renverrait la chaine "Salut Toto" ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part commeprintf("Salut %s","Toto");
Ou bien sur toute autre fonction au comportement analogue... dans string.h ou pas d'ailleurs.
Merci !
Partager