Hola, la siguiente función cuenta los caracteres que hay en una subcadena:
Código C:
Ver original#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char cad1[100];
char cad2[50];
int subcadena;
printf("Introduce una cadena: ");
printf("Introduce la subcadena a buscar: ");
subcadena = buscar_subcadena(cad1, cad2);
printf("La subcadena tiene %d caracteres.\n", subcadena
); }
int buscar_subcadena(char cad1[], char cad2[]){
int i=0;
int j, k;
int encontrado = 0;
while((cad1[i] != '\0') && (encontrado != 1)){
j=0;
k=i;
while((cad1[k]==cad2[j]) && (cad2[j] != '\0')){
k++;
j++;
}
if(cad2[j]=='\0'){
encontrado = 1;
}
else{
i++;
}
}
if(encontrado == 0){
i = -1;
}
return(i);
}
Cuando lo compilo no me sale bien.
Introduce una cadena: papel
Introduce la subcadena a buscar: pap
La subcadena tiene 0 caracteres.
¿Por qué no cuenta los caracteres de la subcadena?