Problème avec la boucle for et les tableaux
Résolu
Bonjour j'aimerai créer un programme qui enregistre comme valeur booléene dans un tableau combien le texte contient de lettre. Mon code si dessous est censé de mander du texte et mettre 1 dans un tableau si le caractère correspondant est une lettre ou 0 si c'est autre chose mais voilà : il ne marche pas et je ne sais pas pourquoi merci de votre aide !
#include <iostream>
#include <string>
using namespace std;
int main()
{
string texte(" ");
cout << "Votre texte: ";
cin >> texte;
int longueurTexte(texte.size());
string alphabet("abcdefghijklmnopqrstuvwxyz");
int boolLettre[longueurTexte];
for(int a(0); a < longueurTexte; a++)
{
for(int b(0); b < 25; b++)
{
if(texte[a] = alphabet[b])
{
boolLettre[a] = 1;
}
else
{
boolLettre[a] = 0;
}
}
}
cout << boolLettre << endl;
return 0;
}
4 réponses
-
Bonjour,
Tu utilises un opérateur d'affectation au lieu d'un opérateur d'égalité :if(texte[a] == alphabet[b]) { boolLettre[a] = 1; } -
ca ne marche toujours pas
mais merci quand même je
n'avais pas fait attention-
Est-ce que c'est ceci que tu souhaites ? :
#include <iostream> #include <string> using namespace std; int main() { string texte = "", alphabet = "abcdefghijklmnopqrstuvwxyz"; cout << "Votre texte: "; cin >> texte; int longueurTexte = texte.size(), longueurAlphabet = alphabet.size(), i = 0, j = 0; int boolLettre[longueurAlphabet]; for(int i = 0; i < longueurTexte; ++i) { for(int j = 0; j < longueurAlphabet; ++j) { if(texte[i] == alphabet[j]) { boolLettre[i] = 1; } else { boolLettre[i] = 0; } cout << boolLettre[i] << endl; } } return 0; }
-
-
Non mais merci de ton aide .
En fait j'aimerai que mon programme mette soit 1 si c'est une lettre sinon 0 alors que ton code donne une suite illogique de 0 et de 1. A moins que ce soit moi qui est mal copié le programme ? Merci de ton aide .-
D'accord, donc ? :
#include <iostream> #include <string> using namespace std; int main() { string texte = "", alphabet = "abcdefghijklmnopqrstuvwxyz"; cout << "Votre texte: "; cin >> texte; int longueurTexte = texte.size(), longueurAlphabet = alphabet.size(), i = 0, j = 0; int boolLettre[longueurTexte], etat; for(int i = 0; i < longueurTexte; ++i) { etat = 0; for(int j = 0; j < longueurAlphabet; ++j) { if(texte[i] == alphabet[j]) { etat = 1; break; } } boolLettre[i] = etat; cout << boolLettre[i] << endl; } return 0; }
-
-
OUI ! Merci mais je ne comprend pas le break: a quoi sert-il ?
-
-
@Felice_Merci beaucoup de ton aide
bonne continuation !
-