Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Pb avec fonction retournant chaine de caractères [ Archives / Au secours ] (dragon3x6)

mercredi 16 juin 2004 à 18:20:41 | Pb avec fonction retournant chaine de caractères

dragon3x6


Bonjour,

peut - on retourner une chaine de caracteres avec une fonction ?

j'ai ecris une fonction qui renvoie une chaine de caracteres du type 'char chaine[30]'

ex:

char func()[30]
{
return chaine;
}

et le compilateur me répond

error C2090 function returns array

SVP, comment fait - on pour renvoyer une chaine de caracteres avec une fonction.

Merci d'avance.

mercredi 16 juin 2004 à 18:52:11 | Re : Pb avec fonction retournant chaine de caractères

bipcpp

peut-être avec : char[30] function(...)
ou avec un pointeur de char.

Perso j'utilise plutôt les string de la STL.


mercredi 16 juin 2004 à 18:57:30 | Re : Pb avec fonction retournant chaine de caractères

dragon3x6


pourrais - tu m'expliquer comment utiliser les string de la STL STP

mercredi 16 juin 2004 à 19:15:03 | Re : Pb avec fonction retournant chaine de caractères

BruNews

Administrateur CodeS-SourceS
en C on ne retourne pas une chaine sinon il faut faire une alloc dans la fonction et retourner le pointeur alloue. C'est contre productif.
Mets un par char* a ta func (tu demandes le buffer a remplir).

ciao...
BruNews, Admin CS, MVP Visual C++

mercredi 16 juin 2004 à 20:44:49 | Re : Pb avec fonction retournant chaine de caractères

djl


oui, en param, et tu peux egalement le retourné

char *func(char *str)
{
...
return str;
}

jeudi 17 juin 2004 à 09:58:48 | Re : Pb avec fonction retournant chaine de caractères

hilairenicolas


Juste une précision Brunews,

pourquoi c'est mieux de faire :

void rempliBuffer(char * buffer)
{
// remplissage
}

char *buff;
buff = new char[50];
rempliBuffer(buff);
// traitement
delete buff;

plutot que

char * rempliBuffer()
{
char * buffer = new char[50];
// remplissage
return buffer;
}

char *buff;
buff = rempliBuffer();
// traitement
delete buff;


qu'est-ce qui est contre productif ?

jeudi 17 juin 2004 à 10:14:02 | Re : Pb avec fonction retournant chaine de caractères

BruNews

Administrateur CodeS-SourceS
Parce que tu es certain de faire alloc desalloc a chaque appel alors que la fonction pourrait etre appelee 1000 fois de suite et on ne fait alloc qu'1 fois (et encore, le buffer peut etre mis sur pile et en ce cas aucune alloc).

ciao...
BruNews, Admin CS, MVP Visual C++

jeudi 17 juin 2004 à 10:46:02 | Re : Pb avec fonction retournant chaine de caractères

hilairenicolas


oui, dans ce cas là bien sur ...
ca dépend tout d'abord du but recherché de la fonction, une histoire de conception

a+

jeudi 17 juin 2004 à 11:39:09 | Re : Pb avec fonction retournant chaine de caractères

dragon3x6


Merci à tous,

finallement, j'avais trouvé que je pouvais retourner l'adresse de la chaine de caractères plutôt que la chaine elle - même.

Je n'ai pas encore les bons reflexes ! (mais ça commence à rentrer)

En fait, je suis en train de programmer un jeu avec la SDL et la programmation objet que vous devrez prochainement voir dans les codes sources de CPPFrance.com.

Encore merci pour le nombre des réponses qui m'offrent des alternatives.

Longue vie à CPPFrance

jeudi 17 juin 2004 à 16:31:49 | Re : Pb avec fonction retournant chaine de caractères

djl


si tu fait ca en c++, utilise std::string et te fais pas chier avec les char*

mais cce qui est genant c'est que tu ne semble pas avoir compris les tableaux...
tu devrais lire un cour la dessus

http://cowww.epfl.ch/infgmel/doc/coursCpp/book1.html


1 2

Cette discussion est classé dans : fonction, pb, chaine, caracteres, retournant


Répondre à ce message

Sujets en rapport avec ce message

Pb de reallocation d'un tableau de chaine de caracteres [ par kobee12 ] J'ai un petit probleme. En effet j'ai un tableau defini de la maniere suivante : char* tab[12];Je charge des chaines de caracteres dans mon tableau. E copier nombre dans chaine de caracteres?? [ par dletozeun ] bonjour,Je cherche une fonction capable de copier un entier dans une chaine de caracteres et une autre fonction capable de transformer une chaine de c Executer une chaine de caracteres... [ par Clonk ] Bonjour,Je voudrais, por alléger mon appli, pouvoir executer une fonction (déjà définie dans mon code) dont le nom est contenu dans une variable. Par chaines de caracteres: caractere NULL [ par dletozeun ] bonjour,Je sais que lorsque l'on utilise la fonction: sprintf(), celle ci met automatiquement un caractere NULL a la fin du mot ecris dans la chaine.J pb : exporter une fonction retournant une valuer pointeur... [ par Gendal67 ] Bonsoir tout le monde!Je reste surpris....je n'arrive pas à exporter une fonction de ma DLL !! En fait, je vous explique, dans une DLL que j'ai crée, pb avec une fonction qui retourne une chaine de caractère [ par othland ] slt tlm: j'ai introduit le code suivant: char * my_func(........) {char ch[30];   mon code..... return(ch); } void main() { char chaine[30];   chaine probleme d'une chaine de caracteres [ par bilaloch ] Bonjour a tous,J'ai un ptit probleme au niveau d'une manipulation sur une chaine de caracteres. Voici le code : std::string *position = <FONT color=# Fonction qui remplace une chaine de caractères en vue d'une traduction [ par Skippy2605 ] Bonjour,Je cherche une fonction C++ qui afficherait une chaine de caractères en fonction d'un paramètre lang (fr, en ou sp), la chaine correspondante prog c : chaine en valeur de retour d'une fonction [ par laetitiavincent ] Bonjour je souhaiterais faire une fonction dans laquelle j'ai une chaine de caractères que je voudrais renvoyée dans le menu principal. Comment puis-j recherche de caracteres d'une chaine cstring [ par samia82 ] bonjour a tous je suis actuellement en train de rechercher le  code d un pg qui permet de taper une partie d un mot et de retrouver les mots qui s y a


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.