begin process at 2010 02 10 01:04:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Pb avec fonction retournant chaine de caractères


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pb avec fonction retournant chaine de caractères

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ée 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...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales