se podria hacer lo mismo pero con el prototitpo EOF
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
char cadena1[100],cadena2[100];
int i=0,k=0,mapers=0;
cout<<"ingrse primera cadena "<<endl;
gets(cadena1);
cout<<"ingrse primera cadena "<<endl;
gets(cadena2);
for(i=0;strlen(cadena1);i++)
{
if(strchr(cadena2,i<cadena1[0])!=NULL)
{
mapers++;
}
}
cout<<mapers<<endl;
system("pause");
}
Cambia gets por fgets
http://foro.elhacker.net/programacion_general/programacion_segura_buffer_overflows_by_strcpy-t95901.0.html (http://foro.elhacker.net/programacion_general/programacion_segura_buffer_overflows_by_strcpy-t95901.0.html)
Salu2