Problème avec la boucle for et les tableaux

Résolu/Fermé
DoMiN1ToR Messages postés 46 Date d'inscription vendredi 3 mars 2017 Statut Membre Dernière intervention 30 décembre 2018 - 28 juin 2017 à 15:30
DoMiN1ToR Messages postés 46 Date d'inscription vendredi 3 mars 2017 Statut Membre Dernière intervention 30 décembre 2018 - 29 juin 2017 à 12:45
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;
}
A voir également:

4 réponses

Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
Modifié le 28 juin 2017 à 15:52
Bonjour,

Tu utilises un opérateur d'affectation au lieu d'un opérateur d'égalité :
if(texte[a] == alphabet[b]) {
    boolLettre[a] = 1;
}
0
ca ne marche toujours pas
mais merci quand même je
n'avais pas fait attention
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
Modifié le 28 juin 2017 à 19:55
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;
}
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 .
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
Modifié le 28 juin 2017 à 22:18
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;
}
0
DoMiN1ToR Messages postés 46 Date d'inscription vendredi 3 mars 2017 Statut Membre Dernière intervention 30 décembre 2018
29 juin 2017 à 11:46
OUI ! Merci mais je ne comprend pas le break: a quoi sert-il ?
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
29 juin 2017 à 12:41
Cela arrête l'itération de la boucle ;-)
0
DoMiN1ToR Messages postés 46 Date d'inscription vendredi 3 mars 2017 Statut Membre Dernière intervention 30 décembre 2018 > Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017
29 juin 2017 à 12:45
Merci beaucoup de ton aide
bonne continuation !
0