Código:
Introduzco la cadena "murcielago". Pues bien, al buscar el caracter, si busco la "m" me dice que esta en la posicion 1 de la cadena, pero no me dice nada si busco la "u", o la "o", por ejemplo.#include <stdio.h>
#define TAM 50
char string[TAM];
char letra;
int BuscaCaracter(char*,char);
int main (void)
{
printf("Introduce una cadena de caracteres: ");
scanf("%s",string);
printf("\nIntroduce caracter a buscar: ");
fflush(stdin); scanf("%c",&letra);
if ( BuscaCaracter(string,letra) != -1 ) { printf("La letra esta en la posicion %d de la cadena.\n",BuscaCaracter(string,letra)); } else { printf("Letra no encontrada.\n"); }
return 0;
}
int BuscaCaracter (char *cadena, char caracter)
{
for (int i=0;i<TAM;i++)
{
while ( string[i] != '\0' ) { if ( string[i] == caracter ) { return i+1; } }
}
}
Igualmente, me gustaría no declarar la cadena como string[50], ya que estoy fijando un tamaño máximo y no quiero. Pero si declaro char string[] no me compila porque dice que no se conoce el tamaño de la cadena, y si hago char *string compila pero me da error en tiempo de ejecución cuando introduzco la cadena por el teclado.

Este tema le ha gustado a 1 personas