Informatică, întrebare adresată de xxdrxx, 9 ani în urmă

Cerința

Se dă o propoziție formată din litere mici ale alfabetului englez, spații și semnele de punctuație ,.. Determinați un cuvânt palindrom din propoziție, primul în ordine alfabetică.
Date de intrare

Programul citește de la tastatură propoziția dată.
Date de ieșire

Programul va afișa pe ecran cuvântul determinat, sau mesajul IMPOSIBIL, dacă în șir nu există niciun cuvânt palindrom.
Restricții și precizări

propoziția citită va conține cel mult 255 de caractere
cuvintele din propoziție vor avea maxim 10 litere
Si explicatie daca se poate :)

Răspunsuri la întrebare

Răspuns de ionutg38
14
#include <iostream> #include <cstring> using namespace std; bool palindrom(char *p) { for(int i = 0 , j = strlen(p) - 1 ; i < j ; i ++, j --) if(p[i] != p[j]) return false; return true; } int main() { char s[256], cmin[11]; cin.getline(s, 256); char * p = strtok(s , " .,"); int cnt = 0; while(p) { if(palindrom(p)) { cnt ++; if(cnt == 1) strcpy(cmin , p); else if(strcmp(p , cmin) < 0) strcpy(cmin , p); } p = strtok(NULL , " .,"); } if(cnt > 0) cout << cmin; else cout << "IMPOSIBIL"; return 0; }
Alte întrebări interesante