elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Mostrar la cantidad de veces que una cadena se repite
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Mostrar la cantidad de veces que una cadena se repite  (Leído 3,269 veces)
andoporto

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Mostrar la cantidad de veces que una cadena se repite
« en: 8 Febrero 2015, 11:42 am »

Hola, tengo esta codificación que Mostrar la cantidad de veces que una cadena se repite en otra cadena, pero quiero que me tome en cuenta los espacios en balnco entre cada caracter, así esta línea
Código:
printf ("\n La cadena 5 se repite %d veces en la cadena 4",cantrepeticiones(cad4,cad5));
muestre
Código:
La cadena 5 se repite 1 veces en la cadena 4"
pero me muestra esto :
Código:
La cadena 5 se repite 0 veces en la cadena 4

Código:
#include <stdio.h>
#include <stdlib.h>
#define aMayusc(X)((X)>='a'&&(X)<='z'?(X)-32:(X))

int cantrepeticiones (char*,char*);

int main()
{
    char cad1[]= "ananana";
    char cad2[]= "ana";
    char cad3[]= "an";
    printf ("\n");
    char cad4[]= "mariamariamariamariana";
    char cad5[]= "maria jose";
    char cad6[]= "maria";
    puts(cad1);
    puts(cad2);
    puts(cad3);
    puts(cad4);
    puts(cad5);
    puts(cad6);
    printf ("\n La cadena 2 se repite %d veces en la cadena 1",cantrepeticiones(cad1,cad2));
    printf ("\n La cadena 3 se repite %d veces en la cadena 1",cantrepeticiones(cad1,cad3));
    printf ("\n La cadena 5 se repite %d veces en la cadena 4",cantrepeticiones(cad4,cad5));
    printf ("\n La cadena 6 se repite %d veces en la cadena 4",cantrepeticiones(cad4,cad6));
    printf ("\n");
    return 0;
}

int cantrepeticiones(char* c1, char* c2)
{
    int repeticiones=0;
    char* coindicencia=c1;  //Para guardar la posicion donde encuentra coincidencia con el primer caracter de la cadena a buscar
    char* inicio=c2; // Para poder volver al inicio de la cadena a buscar, en caso de no encontrarla completa
    while (*c1)
    {
        if (aMayusc(*c1)==aMayusc(*c2))
        {
            coindicencia=c1; //Guardo la posicion de la primera coincidencia
            while (*c1 && *c2 && aMayusc(*c1)==aMayusc(*c2))
            {
                c1++;
                c2++;
            }
            if (!*c2)
                repeticiones+=1;
            c1=coindicencia; // Vuelvo a la posicion de la primera coincidencia de caracteres
            c2=inicio; //Vuelvo al inicio del a cadena a buscar, por que el puntero quedo en el \0 o en la posicion donde no hubo coincidencia
        }
        c1++;
    }
    //printf("\n %d",repeticiones);
    return repeticiones;
}



En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Mostrar la cantidad de veces que una cadena se repite
« Respuesta #1 en: 9 Febrero 2015, 08:10 am »

Código
  1.    char cad4[]= "mariamariamariamariana";
  2.    char cad5[]= "maria jose";

¿Y dónde exactamente se encuentra "cad5" dentro de "cad4"? Porque yo no soy capaz de encontrar "maria jose" en "cad4" por mas veces que lo miro.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Batch] BUCLE FOR se repite varias veces
Scripting
wareware 3 7,789 Último mensaje 28 Agosto 2011, 22:59 pm
por leogtz
Contar cuantas veces se repite un numero [duda JAVA]
Java
Norlak 3 47,309 Último mensaje 23 Agosto 2012, 18:33 pm
por s00rk
Problemas con el archivo taskmgr.exe, se repite muchas veces y bloquea la PC
Seguridad
jr2003 3 3,851 Último mensaje 23 Agosto 2012, 11:22 am
por SokarTefnut
Mostrar campos de una tabla me repite valores
PHP
bgnumis 2 2,986 Último mensaje 2 Abril 2015, 18:03 pm
por Usuario Invitado
Encontrar cuantas veces se repite una letra en una cadena en C
Programación C/C++
fernando1122 8 18,099 Último mensaje 12 Noviembre 2019, 15:24 pm
por polako
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines