2016-01-26 1 views
-6

Ceci est ma première question ici à stackoverflow. J'espère trouver ce que je cherche. J'essaie de trouver un moyen de vérifier si un groupe de caractères appartient à un tableau. Cela a été demandé en classe et j'ai essayé de le comprendre, mais n'a rien obtenu dans la sortie.Comment vérifier si un ensemble de caractères est contenu dans un tableau de caractères en C++?

Créer un tableau de 10 caractères, contenant la lettre de a à j. Vérifiez si le tableau contient des valeurs de caractères a, b, c. Si tel est le cas, laissez l'utilisateur entrer un nom, et si le nom entré est TEST , affichez TEST 5 fois.

Je sais qu'il y a un problème avec l'instruction if. S'il vous plaît donnez votre avis! merci :)

#include <iostream> 
#include<string> 
using namespace std; 
int main() 
{ 
    string name; 
    char arr[10] = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' }; 
    for (int x = 0; x < 10; x++) 
    { 
     if ((arr[x] == 'a') && (arr[x] == 'b') && (arr[x] == 'c')) 
     { 
      cout << "Enter a name" << endl; 
      cin >> name; 
      if (name == "TEST") 
       for (int a = 0; a < 5; a++) 
        cout << "TEST" << endl; 
     } 
    } 
    system("pause"); 
    return 0; 
} 
+0

Pas besoin de gras, nous ne sommes pas aveugles (je suppose que la plupart d'entre nous). Mieux vaut mettre des efforts pour formater correctement votre code et expliquer ce qui ne va pas. Aussi, comment considérez-vous cette condition 'if ((arr [x] == 'a') && (arr [x] == 'b') && (arr [x] == 'c'))' devenant vrai ? Vouliez-vous utiliser logique ou ('||') réellement? –

+0

Je recommande le type de données 'std :: string' et certaines de ses méthodes comme' find' et 'substr'. –

+0

Salut πάντα ῥεῖ. Eh bien, je ne suis toujours pas habitué au formatage de stackoverflow, c'est tout. J'ai la réponse ici sur stackoverflow. Cela peut être résolu en utilisant trois variables booléennes. bool b1 = faux; \t bool b2 = faux; \t bool b3 = faux; \t for (int x = 0; x <10; x ++) { \t \t \t if (arr [x] == 'a') \t \t { \t \t \t b1 = true; \t \t} \t \t if (arr [x] == 'b') \t \t { \t \t \t b2 = true; \t \t} \t \t if (arr [x] == 'c') \t \t { \t \t \t b3 = true; \t \t}} \t if ((b1 == true) && (b2 == true) && (b3 == true)) { \t \t \t Cout << "Entrez un nom" << endl; – Julian

Répondre

0

Voir l'extrait de code pour votre compréhension:

#include <iostream> 
#include <string> 
using namespace std; 

int main() { 
    string name; 
    char arr[10] = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' }; 

    bool found_a = false; 
    bool found_b = false; 
    bool found_c = false; 

    for (int x = 0; x < 10; x++) { 
     if(arr[x] == 'a') { 
      found_a = true; 
     } else if(arr[x] == 'b') { 
      found_b = true; 
     } else if(arr[x] == 'c') { 
      found_c = true; 
     } 

     if(found_a == true && found_b == true && found_c == true) { 
      cout << "Enter a name" << endl; 
      cin >> name; 
      if (name == "TEST") { 
       for (int a = 0; a < 5; a++) { 
        cout << "TEST" << endl; 
       } 
      } 
      break; 
     } 
    } 
    system("pause"); 
    return 0; 
}