begin process at 2010 02 10 09:27:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

operator [] ds une classe string pr retourner un caractère


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

operator [] ds une classe string pr retourner un caractère

samedi 1 février 2003 à 23:20:45 | operator [] ds une classe string pr retourner un caractère

ngryman

Salut à ts,

voilà j'ai un petit souci ds une classe String que j'ai fait. J'ai inclu un opérateur [] qui comme un char* retourne le char à la position donnée.
Pour récupérer le caractère, pas de souci, seulement voilà je voudrai que l'opérateur = normal modifie le caratère retourné ( c pr ça que je retourne une référence ) et que l'opérateur == marche. ni l'un ni l'autr ne marche

Voilà mon code


// m_Str est un char*, membre de ma classe et représentant
// la chaîne de caractère.
// m_wLen est la longueur de la chaîne

char& String::operator[](const int Pos)
{
static char ch = 0;
if(Pos >= m_wLen)
return ch;

return m_Str[Pos];
}


Voilà, aidez-moi plz...
Nico
dimanche 2 février 2003 à 11:48:46 | Re : operator [] ds une classe string pr retourner un caractère

vieuxLion

Bonjour,
je te donne la piste pour ton opérateur []
à toi de continuer avec == selon le sens que tu veux lui donner (égalité de contenu ou des pointeurs)

// m_Str est un char*, membre de ma classe et représentant
// la chaîne de caractère.
// m_wLen est la longueur de la chaîne
#include <iostream>
#include <string>
using namespace std;

class String
{char * m_Str;
int m_wLen;
public:
String(char* p=0)
{
if (p)
{
m_Str = new char [strlen(p)+1];
strcpy(m_Str, p);
m_wLen = strlen(p);
}
else
{
m_Str=0;
m_wLen = 0;
}
}
~String() {delete[] m_Str;}
//oper = et Ctor de copie à faire ...
char& operator[] (int Pos)
{
if (!m_Str) throw "String vide";
if (Pos<0 || Pos>m_wLen) throw "Indice incorrect";
return m_Str[Pos];
}
const char* GetStr(){return m_Str;}
};
int main()
{
String s("vieuxLion");
cout << s.GetStr() << endl;//=> affiche vieuxLion
cout << s[0] <<s[1] << s[2] << endl;//on lit
s[3] = '\0';//on écrit
cout << s.GetStr() << endl;//=> affiche "vie"
try
{
cout << s[10] << endl;
}
catch(const char* p)
{
cout << "exception : " << p << endl;
}
return 0;
}

j'espère que ça te servira





-------------------------------
Réponse au message :
-------------------------------

> Salut à ts,
>
> voilà j'ai un petit souci ds une classe String que j'ai fait. J'ai inclu un opérateur [] qui comme un char* retourne le char à la position donnée.
> Pour récupérer le caractère, pas de souci, seulement voilà je voudrai que l'opérateur = normal modifie le caratère retourné ( c pr ça que je retourne une référence ) et que l'opérateur == marche. ni l'un ni l'autr ne marche
>
> Voilà mon code
>
>

> // m_Str est un char*, membre de ma classe et représentant
> // la chaîne de caractère.
> // m_wLen est la longueur de la chaîne
>
> char& String::operator[](const int Pos)
> {
> static char ch = 0;
> if(Pos >= m_wLen)
> return ch;
>
> return m_Str[Pos];
> }
>

>
> Voilà, aidez-moi plz...
> Nico


Cette discussion est classée dans : voil, string, caractère, classe, char


Répondre à ce message

Sujets en rapport avec ce message

Classe en c++ [ par aciid_washor ] Bonjour, j'essaye de créé une classe donnee qui comporterait un nom et un numéroJe déclare donc:class donnee{ public: char nom; char num pointeur sur char * [ par Clonk ] Bonjour,Voilà mon petit problème:je voudrais copier dans une variable x le contenu d'une variable y jusqu'à un caractère spécifié.Je voudrais aussi en string [ par ToToL ] BonjourComme le dit le sujet j'ai un probleme de string ...... ;-)en fait j'ai un char remplit d'une chaine de caractere avec a un endroit de la chain petite question concernant malloc et free... [ par kod32 ] Salut,je me pose une question depuis un petit moment et je pense que vous avez la réponse...Quand on alloue quelques octets via malloc, si on évite l' Voilà je suis coincé sur les fonctions se situant dans la classe carnet. [ par nulmaisveutcomprendre ] Bonjour voilà comme le dit plus haut mon sujet je suis coincé sur les fonctions de la classe carnet. J'ai déjà fait le reste du code sinon. J'aimerai return tableau de caracteres en C++ [ par sozer2 ] Bonjour j'aimerai savoir comment retourner correctement un tableau de caractère en C++Voici mon code qui contient une erreur au niveau du return et au String Managé en char* [ par kerad ] Hello,J'utilise un programme qui mélange pas mal code managé et non managé. En effet, j'ain un noyeau en C qui date de ouhla... tou ça au moins et une Probleme a l'acces a une class [ par VBFRANCE ] Je suis tout nouveau dans la C++, en fait je decouvre. j'ai un soucis avec les class. En fait, j'ai creer un class pour les strings, jusque la pas de Extraire une chaine de caractères [ par spacegate ] Bonjour!Voilà mon problème :je désire lire un fichier, puis le parser, afin d'en extraire des données baliséesJ'ai donc le contenu du fichier dans une pb de conversion int -> string [ par RoAdBooK ] Bonjour à tous,Problématique : je souhaite décomposer une date pour obtenir une string de la forme LAAAAMM1.txt (AAAA=année et MM = mois) qui me servi


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,640 sec (4)

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