Hola KroSaver.
Creo que la forma mas simple es la que te sugiere
maeyanes en el segundo mensaje.
Ejemplo Delphi:
Código Delphi
[-]
function EncontrarCadena(cad, sub: string): Integer;
begin
cad:= LowerCase(cad);
sub:= LowerCase(sub);
Result:= Pos(sub, cad);
end;
Equivalente C++:
Código:
#include <ctype>
#include <iostream>
int EncontrarCadena(std::string sub, std::string cad)
{
for(int i=0;cad[i];i++) cad[i] = tolower(cad[i]);
for(int i=0;sub[i];i++) sub[i] = tolower(sub[i]);
return cad.find(sub);
}
Equivalente C:
Código:
#include <string.h>
int EncontrarCadena(char *sub, char *cad)
{
char *d;
int i;
for(i=0;cad[i];i++) cad[i] = tolower(cad[i]);
for(i=0;sub[i];i++) sub[i] = tolower(sub[i]);
d = strstr(cad, sub);
if (d) return d - cad; // Posición de cadena hallada
return -1;
}
Con la salvedad que en C/C++ se referencia al primer caracter por el índice 0 (en Delphi es 1), por lo que las funciones devolverán el valor de la posición disminuido en uno.
Saludos.