Program c++ , w codeblocks

Ze standardowego wejścia wczytaj dwa słowa które mają wspólny początek. Sprawdź na którym miejscu się różnią. Wypisz numer miejsca, od którego łańcuchy się różnią. Jeśli słowa się nie różnią, system ma wypisać cyfrę 0.

Wejście:
abcdeefs
abcdefdgs
Wyjście:
6

Należy pamiętać, że znaki w łańcuchach indeksowane są od 0, więc przy informowaniu odbiorcy o konkretnym numerze znaku, należy podać numer większy o 1 niż jego indeks

1

Odpowiedzi

Najlepsza Odpowiedź!
  • Użytkownik Zadane
2009-12-18T10:46:08+01:00
#include <iostream>
#include <string.h>

#define MAX 512

using namespace std;

int main()
{
char tab1[MAX];
char tab2[MAX];

int dl_slowa1, dl_slowa2, i, pozycja=0;

cin>>tab1;
dl_slowa1=strlen(tab1); //strlen podaje długość wyrazu

cin>>tab2;
dl_slowa2=strlen(tab2);

if(dl_slowa1>=dl_slowa2) //w zależności od długości tablicy porównujemy zawsze dłuższa z krótszą
{
for(i=0;i<dl_slowa1+1;i++)
{
if(tab1[i]!=tab2[i])
{
pozycja=i+1;
break;
}
}
}
else
{
for(i=0;i<dl_slowa2+1;i++)
{
if(tab2[i]!=tab1[i])
{
pozycja=i+1;
break;
}
}
}

if(pozycja!=0)
{
cout<<"Slowa roznia sie od " << pozycja << " pozycji.";
}
else
cout<< "Slowa nie roznia sie";
return 0;
}