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.