C++ STRING
Résolu
Bonjour,
JE VOUDRAIS SAVOIR COMMENT ON PEUT UTILISER UNE VARIABLE DE TYPE STRING DANS UNE CLASS .HPP
EN C++
String b ; ca marche pas
JE VOUDRAIS SAVOIR COMMENT ON PEUT UTILISER UNE VARIABLE DE TYPE STRING DANS UNE CLASS .HPP
EN C++
String b ; ca marche pas
Configuration: Windows 7 Firefox 3.5.7
4 réponses
-
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.-
-
@k-23Exemple :
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; } -
@Pacorabanixoui 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>
-
@k-23non. include <cstring> c'est pour inclure les fonctions du C concernant les chaines (comme strcpy). ce n'est pas la STL.
-
-
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... )-
-
@Pacorabanixc'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
-
-
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.-
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 -
@k-23EDIT
-
@Pacorabanixok merci
-
-
mais string est un bibliothèque .
-
est ce que ca veut dire qu'il faut utiliser la stl en faite je veux faire une classe ou je vais faire un objet personne donc je doit avoir un constructeur
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
-