Informatică, întrebare adresată de stanciuhoratiuandrei, 8 ani în urmă

Se citește de la tastatură un șir de caractere. Se cere să se determine dacă acesta este palindrom –citit de la stânga la dreapta este la fel ca și cum ar fi citit de la dreapta la stânga. Exemplu: șirul "Ele fac cafele" este palindrom. Limbaj C

Răspunsuri la întrebare

Răspuns de netuioanaralucpb3570
2

Răspuns:

Buna. din pacate stiu sa te ajut doar in c++ dar in c ai functa strrev(sir) care face inversul sirului si apoi verifici daca cele 2 siruri sunt egale. eu aici am aplicat metoda clasica, cea cu copiatul in alt sir de la dreapta la stanga

C++

#include <iostream>

#include <string.h>

using namespace std;

int main(){

char a[201];

cin.get(a,200);

int i,ok = 0;

for (i = 0; i < strlen(a); i++){

       if (strchr(" ,!.",a[i])){

               int j;

               for (j = i; j < strlen(a); j++){

                       a[j] = a[j+1];

               }

       }

}

for (i = 0; i < strlen(a)/2 && ok == 0; i++){

       if (tolower(a[i]) != tolower(a[strlen(a) - i - 1]))

               ok = 1;

}

if (ok == 0)

       cout<<"Textul este palindrom\n";

else

       cout<<"Textul nu este palindrom\n";

       return 0;

}


stanciuhoratiuandrei: Am folosit functia de care ai spus, cam in felul asta
#include
int main()
{
char s[20];
int x, y;
fgets(s, 20, stdin);
x=s;
y=strrev(s);
if(strcmp(x,y)==0)
printf("este palindrom");
return 0;
}
stanciuhoratiuandrei: Dar orice as scrie, imi returneaza "este palindrom"
ce am gresit?
netuioanaralucpb3570: eu nu stiu cum iti scrie tie ca e palindrom atata timp cat sintactic nu este corect. nu stii sa faci diferenta intre variabile de tip sir de caractere si variabile intregi etc...
netuioanaralucpb3570: #include
#include

int main() {
char string1[25];
char string2[25];
int i, j;
scanf("%s",&string1);
int n = strlen(string1);

for(i = 0, j = n - 1; i < n; i++, j--) {
string2[i] = string1[j];

}
string2[i] = '\0';

if(strcmp(string1,string2)==0) printf("%s","DA");
else printf("%s","NU");

return 0;
}
netuioanaralucpb3570: asta sigur iti merge si afiseaza corect, dar ar fi mai util sa pui mana sa inveti exact cum se fac citiri si declarari, cum deosebesti tipurile de date intre ele, chestii d-astea basic
stanciuhoratiuandrei: Am inteles, multumes!
netuioanaralucpb3570: nu uita coronita, te rog:) merci
Alte întrebări interesante