online: 6; azi: 1082; total: 51537 Manual clasa a x a - Implementarea structurilor de date - Pointeri si siruri de caractere

Manual clasa a X a

Implementarea structurilor de date

Pointeri si siruri de caractere

Se citesc două cuvinte de la tastatură, Să se verifice dacă ele au același prefix şi /sau acelaşi sufix. În caz afirmativ să se afişeze prefixul şi /sau sufixul. De exemplu, Cuvintele vara şi seara au sufixul ara, cuvintele incet şi inca au prefixul inc, iar cuvintele derutat şi decodat au pretixul de şi sufixul at.
# include < iostream >
# include < cstring >
using namespace std ;
int main () {
char cuvant1[ 100 ], cuvant2[ 100 ];
cout << " Introduceti primul cuvant : " ;
cin >> cuvant1;
cout << " Introduceti al doilea cuvant : " ;
cin >> cuvant2;
int len1 = strlen (cuvant1);
int len2 = strlen (cuvant2);
int minLen = len1 < len2 ? len1 : len2; // Determinăm lungimea minimă dintre cele două cuvinte
// Verificăm dacă cele două cuvinte au același prefix
int lungimePrefix = 0 ;
for ( int i = 0 ; i < minLen ; i++) {
if (cuvant1[i] != cuvant2[i]) {
break ;
}
lungimePrefix ++;
}
if ( lungimePrefix > 0 ) {
cout << "Cele doua cuvinte au acelasi prefix: " ;
for ( int i = 0 ; i < lungimePrefix ; i++) {
cout << cuvant1[i];
}
cout << endl ;
}
// Verificăm dacă cele două cuvinte au același sufix
int lungimeSufix = 0 ;
for ( int i = len1 - 1 , j = len2 - 1 ; i >= 0 && j >= 0 ; i--, j--) {
if (cuvant1[i] != cuvant2[j]) {
break ;
}
lungimeSufix ++;
}
if ( lungimeSufix > 0 ) {
cout << "Cele doua cuvinte au acelasi sufix: " ;
for ( int i = len1 - lungimeSufix ; i < len1; i++) {
cout << cuvant1[i];
}
cout << endl ;
}
// Dacă cele două cuvinte nu au același prefix sau sufix
if ( lungimePrefix == 0 && lungimeSufix == 0 ) {
cout << "Cele doua cuvinte nu au acelasi prefix sau sufix." << endl ;
}
return 0 ;
}

Explicație: