BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 25 nov. 2005 à 19:24
yoyo269 > Faire gaffe à ne pas transmettre nimporte quoi à ceux qui commencent, on ne concatène RIEN sur une constante.
En C on a l'habitude de recevoir le buffer destination, ça évite les fuites mémoire. On ne 'retourne' donc pas la chaine mais seulement un pointeur sur un buffer reçu.
shadow1779
Messages postés706Date d'inscriptionmercredi 17 novembre 2004StatutMembreDernière intervention29 septembre 2013 25 nov. 2005 à 18:27
je ne comprend pas tout a fait ta question mais voici un petit exemple ca pourra peut etre t'aider
#include <stdio.h>
char buffer[256] //on fait une chaine de 256 caracteres
//affichage ce qu'il ya entre guillemets et saute une ligne
printf("que doit on mettre dans buffer:\n ");
//enregistrement de ce que l'on tape dans le buffer
gets(buffer);
.
//retour a l'ecran
printf("votre texte est: %s",buffer);
(si c'est bien ca alors il suffit en fait de mettre % et une lettre
puis fermer les guillemets et mettre une virgule puis sur quoi on doit
se baser, s'il y a plusieurs variable tu met plusieurs virgule et les
noms dans l'ordre ou ca doit paraitre)
%s = chaine de caractere
%c = char de juste une lettre
%d = int (decimal)
%x = octal (j'en suis plus sur de sa mais j'crois) c'est vachement bien pour convertir une chaine
voila si ca n'a pas repondu a ta question merci d'expliquer ce que tu
recherche vraiment et puis si c'est bon bein valide la reponse :)
Deeddolith
Messages postés20Date d'inscriptionjeudi 24 novembre 2005StatutMembreDernière intervention 4 octobre 2008 25 nov. 2005 à 18:37
D'apres ce que je comprend, tu veut savoir si une fonction peut retourner une chaine de caracteres ?
La reponse est non, du moin, pas de la maniere classique. Il faut faire un passage de parametres par adresse.
Exemple:
tekila_bandita
Messages postés248Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention15 mars 200733 25 nov. 2005 à 18:42
Enfaite, par exemple, j'aimerais pouvoir créer une fonction de concaténationne requiérant que deux arguments : la chaine 1, et la chaine 2. La chaine 2 sera concaténée à la suite de la chaine 1 et la chaine reultante serai retourné par la fonction... je ne sais pas si c'est possible mais bon...
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 25 nov. 2005 à 19:29
Salut,
yoyo, ce que tu dis est enorme et completement faux.
On ne peut pas retourner une variable locale, car celle ci est automatiquement détruite a la fin de l'execution de la fonction.
On ne peut pas faire "strcat(c1, c2);" sur deux chaines sauf si c1
contient assez d'espace libre pour contenir c2 (ce qui n'est pas le cas
dans ton exemple...).
Pour retourner une chaine d'une fonction, soit on alloue un buffer
dynamiquement avec malloc, soit on déclare un buffer local static, puis
on retourne l'adresse de ce buffer.
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 25 nov. 2005 à 20:28
LOL ! t'inquiètes shadow1779 !
C'est normal ce qu'ils ont dit, j'avais pas trop fait gaffe à ce que j'avais écrit.
Heureusement qu'ils m'ont corrigé.
Merci les gars.