J'essaie de faire un code qui prend des mots de remorquage de l'utilisateur et de les stocker en tant que matrices et vérifiez si les caractères entrée: strong> em> p> Entrez le premier mot: p> fos p>
blockQuote> Entrez le deuxième mot: p> Stackoverflow P>
blockquote> sortie: strong> em> p> oui p>
blockQuote> Mon code n'est même pas proche de ce que je veux réellement, mais je vais le mettre en panne peut-être que cela expliquera ce que je tente de faire. P>
#include <iostream>
#include <string>
using namespace std;
int main() {
char N1[7];
char N2[10];
cout << ("ENTER THE FIRST WORD : ") ;
cin >> N1;
cout <<("ENTER THE SECOND WORD : ");
cin >> N2;
for (int i = 0; i <4; i++)
{
for (int j = 0; j < 7; j++)
{
if (N1[i] = N2[j])
{
cout << ("YES") << endl;
}
else
{
cout << ("NO") << endl;
}
}
}
return 0;
}
3 Réponses :
Je ne suis pas expert en C ++, mais on dirait que vous voulez vérifier si for (int i = 0; i <4; i++) {
bool charFound = false;
for (int j = 0; j < 7; j++) {
charFound = charFound || (N1[i] == N2[j]); // use OR operator so if found one match it is will stay true
}
if (!charFound) {
cout << ("NO") << endl;
return; // one char is missing - print no and exit
}
}
cout << ("YES") << endl; // if got here you found all char - YES
Je l'ai essayé avec une recherche simple et une variable booléenne à suivre s'il est trouvé ou non.
#include <iostream> #include <string> using namespace std; int main() { string s1 = "fosq"; string s2 = "stackoverflow"; bool isfound; for(int i=0;i<s1.length();i++) { isfound=false; for(int j=0;j<s2.length();j++) { if(s1[i]==s2[j]) { isfound=true; break; } } if(!isfound) { cout<<"Not found"; break; } } if(isfound) { cout<<"Yes\n"; } }
J'ai défini des valeurs de S1 code> et
s2 code> manuellement, vous pouvez demander une entrée via
CIN code>
Je pense que le moyen le plus efficace est de trier les deux tableaux avant de calculer la correspondance:
Conseil:
Unorded_map code>. Évitez également
à l'aide de NAMESPACE STD; code>.
n1 [i] = n2 [j] code> est une affectation, pas une comparaison. En outre, C ++ a
std :: string code>, pas besoin de matrices de caractères difficiles. Aussi,
std :: string code> a
std :: string :: trouver code>, ce qui facilite votre tâche. De plus, vous devriez vraiment séparer les processus que vous pouvez nommer dans une fonction, dans ce cas quelque chose comme
bool contenant_letters (const String & A, Const String & B); Code>.
Le concept de clé qui vous manque est que vous ne pouvez pas décider immédiatement b> si votre condition est vraie. Vous ne pouvez savoir qu'à la fin de vos boucles, que chaque élément de la première chaîne soit dans la deuxième chaîne. Chaque fois que vous avez un problème qui dit «tout», vous pouvez utiliser une variable booléenne. Définissez la variable sur true puis écrivez une boucle qui teste chaque élément. Si Tout b> d'entre eux échoue, définissez la variable booléenne sur FALSE. Pour la mettre d'autre moyen, supposez que la condition est vraie et d'abord, puis cherchez un seul exemple.