erreur de segmentation sur string - C++ - Programmation
Marsh Posté le 17-11-2005 à 23:21:21
une autre solution, tu es toujours obligé d'initialiser convert
Code :
|
Marsh Posté le 18-11-2005 à 08:55:59
Merci de ton aide mais je dois m'en tenir aux méthodes vues en cours je pense ...
Donc sans #include <algorithm> ou convert(chaine);
Marsh Posté le 17-11-2005 à 22:28:57
Bonjour,
J'ai un petit problème avec ce petit programme qui supprime les voyelles d'une chaine et conservant la première lettre qu'elle qu'elle soit.
Si je n'initialise pas la string convert avec suffisament d'espaces pour contenir le résultat j'ai un erreur de segmentation (pas à la compilation mais à l'utilisation).
Avez vous une solution pour ne pas avoir à initialiser convert ?
Merci.
N.B je doit utiliser une boucle for (unsigned i=1; i<chaine.size();++i)
#include <iostream>
#include <string>
using std::cout;
using std::endl;
using std::string;
int main ()
{
string chaine="Jedoisretirerlesvoyellesdecettechaine";
string convert=" ";
int j=1;
convert[0]=chaine[0];
for (unsigned i=1; i<chaine.size();++i)
{
if (chaine[i]!='a' && chaine[i]!='e' && chaine[i]!='i' && chaine[i]!='o' && chaine[i]!='u' && chaine[i]!='y' )
{
convert[j]=chaine[i];
j++;
}
}
cout<<"Chaine de base : "<<chaine<<"\nSans voyelles : "<<convert<<endl;
return 0;
}
Autre question
Imaginons que l'on a une fonction dans un fichier séparé qui prend un argument de type chaîne de caractères, a qui on peut passer, indifféremment, un litéral chaîne (ex. "hello" ), un argument de la ligne de commande (type : char const *) ou une variable de type std::string.
Quels argumments mettre dans le .h et dans le cpp?
Merci encore ...