Cómo verificar en C ++ si varias cadenas tienen una coincidencia con una sola cadena de una sola vez

Esto es lo que podría reunir en 15 minutos. Podría haber mejores formas, pero creo que esto captura la idea y luego puede ramificar su código a partir de fragmentos de este

Retazo
// Cpp_Console.cpp: define el punto de entrada para la aplicación de consola.
//

#include “stdafx.h”
#include
#include
#include
#include

void _createMapWithSubStrings (std :: map & _subStrings)
{
// crea algunos datos de prueba
// 1. Con algunas subcadenas
// 2. Sin las subcadenas
_subStrings.insert (std :: pair (“sart”, false));
_subStrings.insert (std :: pair (“ti”, false));
_subStrings.insert (std :: pair (“s”, false));
_subStrings.insert (std :: pair (“oo”, false));
_subStrings.insert (std :: pair (“t”, false));
_subStrings.insert (std :: pair (“descarado”, falso));
_subStrings.insert (std :: pair (“foo”, false));
_subStrings.insert (std :: pair (“bar”, false));
}

void _printResult (std :: string _testStr, std :: map & _subStrings)
{
// solo haz lo que hiciste antes
std :: for_each (_subStrings.begin (),
_subStrings.end (),
[=] (std :: pair _val) {
std :: string _valid = _val.second? “contiene”: “no contiene”;
std :: cout << "Cadena de prueba '" << _testStr << "'" << _valid << "substring '" << _val.first << "'" << std :: endl;
});
}

int _tmain (int argc, _TCHAR * argv [])
{
// aquí está nuestra cadena de prueba. puede tomar esto desde la línea de comando o la entrada del usuario. Vamos a codificarlo por ahora.
std :: string _testString = “sarthak tickoo”;

// esto es solo para fines de demostración. usa una lógica similar con lo que quieres lograr
std :: map _subStringMap;
_createMapWithSubStrings (_subStringMap);

// esta es la parte principal
std :: for_each (_subStringMap.begin (),
_subStringMap.end (),
[&] (std :: pair & _oneElem) {
if (_testString.find (_oneElem.first)! = std :: string :: npos)
_oneElem.second = true;
});

// ¡imprime para ver si lo anterior funcionó!
_printResult (_testString, _subStringMap);

devuelve 0;
}

Espero eso ayude

No hay una función directa para comparar cadenas múltiples, pero puede usar strcmp (str1 [], str22 []) junto con dos caracteres dimensionales array de caracteres char ch [] []

y for loop para comparar múltiples cadenas. Primero pruébelo usted mismo y si no funciona, hágamelo saber, lo programaré y lo publicaré.

Use la caja del interruptor.

P.ej.

nombre de cadena;
cin >> nombre;
interruptor (nombre)
{
caso “nombre de puño”:
cout << "Sí";
caso “segundo nombre”:
cout << "Sí";
caso “apellido”:
cout << "Sí";
//y así. Verifica múltiples cadenas.
Defecto:
cout << "No";
}

Verifique su cadena a múltiples casos.

Prueba esto