Czy wyraz jest wykreślanką

0

Jeżeli z wyjściowego wyrazu wykreślimy litery ale zachowamy kolejnośc to wtedy wyraz jest wykreślanką wyjściowego wyrazu. Mój program z założenia ma poprównywać każdą literkę z wyjściowego słowa z literką z drugiego słowa , jeśli są takie same to przesuwamy się na kolejne litery i zwiekszamy licznik zgodności , a gdy są różne przesuwamy się na wjściowym słowie i nadal porównujemy. W takim razie co może być nie tak z tym programem skoro nie działa ?

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <ctype.h>

int czy_wykreslanka( char *slowo1 , char *slowo2)
{   if (strlen(slowo1)<= strlen(slowo2)) return 0;
    int licznik_zgodnosci=0;
    while (*slowo1 && *slowo2) {
         if (*slowo1== *slowo2){
         ++slowo2;
         ++slowo1;
         licznik_zgodnosci++;}
         else
         ++slowo1;

    }
    if (licznik_zgodnosci ==strlen(slowo2))
        return 1;
    else
        return 0;
    }
 int main (){
 char *slowo1=" informatyka ";
 char *slowo2=" irak ";
 printf("%d",czy_wykreslanka(slowo1, slowo2));
 getch();
 return 0;
 }

0

@Silv: A mógłbyś jeszcze zerknąć co w tym sposobie może być nie tak nie daje mi to spokoju :

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <ctype.h>

int czy_wykreslanka( char *slowo1 , char *slowo2)
{   if (strlen(slowo1)<= strlen(slowo2)) return 0;
    int licznik_zgodnosci=0;
    while (*slowo1 && *slowo2) {
         if (*slowo1== *slowo2){
         ++slowo2;
         ++slowo1;
         licznik_zgodnosci++;}
         else
         ++slowo1;

    }
    if (licznik_zgodnosci ==strlen(slowo2))
        return 1;
    else
        return 0;
    }
 int main (){
 char *slowo1=" informatyka ";
 char *slowo2=" irak ";
 printf("%d",czy_wykreslanka(slowo1, slowo2));
 getch();
 return 0;
 }

1 użytkowników online, w tym zalogowanych: 0, gości: 1