C++ STRING
Résolu/Fermé
k-23
Messages postés
252
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2014
-
13 févr. 2010 à 21:19
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 15 févr. 2010 à 02:26
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 15 févr. 2010 à 02:26
4 réponses
adamodin
Messages postés
78
Date d'inscription
lundi 10 août 2009
Statut
Membre
Dernière intervention
15 décembre 2010
13
14 févr. 2010 à 13:19
14 févr. 2010 à 13:19
mais string est un bibliothèque .
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
14 févr. 2010 à 23:09
14 févr. 2010 à 23:09
bonjour,
dans Standard Template Library il y a "template". Ce qui veut dire modèle. String n'est pas un modèle. (les modèles c'est comme avec vector<monType> par exemple)
si ça ne fonctionne pas c'est que tu n'as pas mis include <string> dans ton fichier, ou alors c'est que l'erreur est ailleurs.
De plus, pourquoi vouloir faire un programme sans utiliser la STL d'ailleurs ? elle fait partie intégrante du langage C++, c'est dans le standard du langage.
dans Standard Template Library il y a "template". Ce qui veut dire modèle. String n'est pas un modèle. (les modèles c'est comme avec vector<monType> par exemple)
si ça ne fonctionne pas c'est que tu n'as pas mis include <string> dans ton fichier, ou alors c'est que l'erreur est ailleurs.
De plus, pourquoi vouloir faire un programme sans utiliser la STL d'ailleurs ? elle fait partie intégrante du langage C++, c'est dans le standard du langage.
k-23
Messages postés
252
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2014
9
14 févr. 2010 à 23:21
14 févr. 2010 à 23:21
en fait le travail consiste a ne pas utiliser le stl c pour cela que je suis pas sur si je dois l<inclure je sais que ca marche si je linclu mais si j<inclue est ce que je suis entrain d'utiliser la stl le travail consiste a travailler juste sur le pointeur je suis dans le doute de lutiliser ou non. dapres toi est ce que si je linclu jutilise la stl
merci
merci
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
>
k-23
Messages postés
252
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2014
14 févr. 2010 à 23:22
14 févr. 2010 à 23:22
EDIT
k-23
Messages postés
252
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2014
9
>
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
14 févr. 2010 à 23:24
14 févr. 2010 à 23:24
ok merci
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
14 févr. 2010 à 23:24
14 févr. 2010 à 23:24
Pardon ! Je me suis trompé !
apparemment, la bibliothèque <string> du C++ fait effectivement partie de la STL.
http://www.cs.purdue.edu/homes/grr/cs422/lab3/stl_strings.html par ex. et bien d'autre (il suffisait de taper "STL string" dans google pour en être sûr d'ailleurs... )
apparemment, la bibliothèque <string> du C++ fait effectivement partie de la STL.
http://www.cs.purdue.edu/homes/grr/cs422/lab3/stl_strings.html par ex. et bien d'autre (il suffisait de taper "STL string" dans google pour en être sûr d'ailleurs... )
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
14 févr. 2010 à 23:26
14 févr. 2010 à 23:26
comme les string te sont interdites, il te faut passer par des char [] (ou des char * et utiliser malloc... en gros tu vas faire du C, pas vraiment du C++)
k-23
Messages postés
252
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2014
9
>
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
14 févr. 2010 à 23:30
14 févr. 2010 à 23:30
c'est ca que jai pense mais lorsque je fait voici dans mon .hpp
void setNom(char nom[]); // ca marche
char []getNom(); // ca marche pas
en fait ca marche pas lorsque je veux qui me renvoie un tableau de char
merci pour laide
void setNom(char nom[]); // ca marche
char []getNom(); // ca marche pas
en fait ca marche pas lorsque je veux qui me renvoie un tableau de char
merci pour laide
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
14 févr. 2010 à 23:34
14 févr. 2010 à 23:34
pour renvoyer un tableau avec une fonction, il faut renvoyer un pointeur (un tableau, en fait c'est presque comme un pointeur en C / C++)
donc un char *
et ta chaine devra être crée correctement avec new , ou alors tu ne pourras pas la retourner correctement.
donc un char *
et ta chaine devra être crée correctement avec new , ou alors tu ne pourras pas la retourner correctement.
k-23
Messages postés
252
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2014
9
14 févr. 2010 à 23:35
14 févr. 2010 à 23:35
ok ok ok merci je voie maintenant
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
>
k-23
Messages postés
252
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2014
14 févr. 2010 à 23:45
14 févr. 2010 à 23:45
Exemple :
le plus simple est encore de passer ta chaine que tu veux obtenir en paramètre
Ceci est la version avec pointeur en retour et new[] :
le plus simple est encore de passer ta chaine que tu veux obtenir en paramètre
#include <iostream> #include <cstring> using namespace std; void direSalut(char *); int main(int argc, char *argv[]) { char chaine[20]; direSalut(chaine); cout<< chaine; system("Pause"); } void direSalut(char * argument) { strcpy(argument, "Salut\n"); }
Ceci est la version avec pointeur en retour et new[] :
#include <iostream> #include <cstring> using namespace std; char * direSalut(void); int main(int argc, char *argv[]) { char * chaine; chaine = direSalut(); cout<< chaine; delete[] chaine; // important à faire si tu as utilisé new[] ! system("Pause"); } char * direSalut(void) { char * p = new char[20]; strcpy(p, "Salut !\n"); return p; }
k-23
Messages postés
252
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2014
9
>
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
14 févr. 2010 à 23:58
14 févr. 2010 à 23:58
oui mais on se sert du stl a cause du #include <cstring> je pas le droit dutiliser ca on a juste le droit a #include <iostream>
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
>
k-23
Messages postés
252
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2014
15 févr. 2010 à 02:26
15 févr. 2010 à 02:26
non. include <cstring> c'est pour inclure les fonctions du C concernant les chaines (comme strcpy). ce n'est pas la STL.
14 févr. 2010 à 23:01
dans mon constructeur il ya une fonction qui renvoit le nom de la personne
dans mon hpp
string getNom();// ca marche pas
je voudrais renvoyer le nom de la personne sans utiliser la stl (Standard Template Library)
merci pour laide