infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Naomi Ionescu din Ianuarie 07, 2011, 16:35:29



Titlul: Problema sir de caractere
Scris de: Naomi Ionescu din Ianuarie 07, 2011, 16:35:29
Am urmatoarea problema: Se citeste de la tastatura un text in care cuvintele sunt separate printr-un singur spatiu. Sa se afiseze cuvintele din text care sunt palindrom. Trebuie sa fac problema cu ajutorul indicilor, nu al pointerilor. Exista insa o eroare in programul meu, intrucat nu imi afiseaza toate cuvintele palindrom, mai exact mi le afiseaza doar pe cele formate din 3 litere, din cate am observat. Ma puteti ajuta? Iata programul meu:
Cod:
#include<iostream.h>
#include<string.h>
#include<stdio.h>
int i,j,k;
int main()
{char text[256],cuv[25],inv[25];
cout<<"Textul: ";
cin.get(text,256);
i=0;
while(i<strlen(text))
{
cuv[0]=NULL;
for(j=i,k=0;text[j],text[j]!=' ';j++,k++)
cuv[k]=text[j];

strcpy(inv,cuv);
strrev(inv);

if(!stricmp(cuv,inv))
cout<<cuv<<"\n";


i=j+1;

}
return 0;
}
Modificat de Moderator: Foloseste tag-ul [ code ] ... [ / code ] cand scrii surse



Titlul: Răspuns: Problema sir de caractere
Scris de: CHERA Laurentiu din Ianuarie 16, 2011, 00:38:10
Cod:
#include <iostream.h>
#include <string.h>

void main()
{
char txt[256];
    cin.getline(txt, 256);

int ok=1, len;
char *p=strtok(txt, " ");
while(p)
{
ok = 1;
len = strlen(p);
for(int i=0;i<len/2;i++)
if(p[i] != p[len-i-1])
{
ok = 0;
break;
}
if(ok) cout<<p<<endl;

p=strtok(NULL, " ");
}
}