Você está na página 1de 5

Exerccios Aulas Prticas

1. Escrever uma funo que determina se uma palavra e' um palndromo.


Nota: palavra ou designativo da palavra, nmero ou frase cuja leitura a
mesma, quer se faa da esquerda para a direita, quer da direita para a
esquerda; capicua;
2. Contar o nmero de vezes que uma palavra ocorre num texto.
3. Criar uma string etiqueta com base no primeiro e ultimo nomes de uma
pessoa, o ttulo Sr. ou Sra. acrescentado no incio em funo do campo
sexo.
4. Criar uma funo que cria uma string com nome completo de uma pessoa,
nome esse que lido do teclado palavra a palavra. O parmetro n indica com
quantas palavras e' composto o nome.
Nota: A string deve criada com o tamanho estritamente necessrio.

Pag.1/5 - Jorge Santos

Exerccios Aulas Prticas


1. Escrever uma funo que determina se uma palavra e' um palndromo.
Nota: palavra ou designativo da palavra, nmero ou frase cuja leitura a
mesma, quer se faa da esquerda para a direita, quer da direita para a
esquerda; capicua;
Resoluo:
int ePalindromo(char palavra[])
{
int t,i,igual=1;
t=strlen(palavra);
/*palavra c/menos de 3 letras nao sao consideradas palindromas*/
if(t<3)
return 0;
for(i=0; i<t && igual; i++)
/*Cada letra e' comparada c/a letra na posicao inversa
primeira -> ultima, segunda -> penultima, etc...*/
if(palavra[i]!=palavra[t-i-1])
igual=0;
return igual;
}

Pag.2/5 - Jorge Santos

Exerccios Aulas Prticas

2. Contar o nmero de vezes que uma palavra ocorre num texto.


Nota: A resoluo no foi optimizada, o objectivo foi processar todas as
palavras;
Resoluo:
int contarOcorrencias(char texto[], char palavra[])
{
int i,t,j=0,contar=0;
char aux[50];

t=strlen(texto);
for(i=0; i<=t; i++)
if(texto[i]!='\0' && texto[i]!=' ')
{
aux[j]=texto[i];
j++;
}
else
{
aux[j]='\0';
if (!strcmp(aux,palavra))
contar++;
j=0;
}

return contar;
}

Pag.3/5 - Jorge Santos

Exerccios Aulas Prticas


3. Criar uma string etiqueta com base no primeiro e ultimo nomes de uma
pessoa, o ttulo Sr. ou Sra. acrescentado no incio em funo do campo
sexo.
Resoluo:
char *criarEtiqueta(char sexo, char prim[],char ult[])
{
int t;
char *etiqueta;
t=strlen(prim)+strlen(ult)+2;
if(sexo=='M' || sexo=='m')
{
t+=3;
etiqueta=(char *)malloc(t);
strcpy(etiqueta,"Sr.");
}
else if(sexo=='F' || sexo)
{
t+=4;
etiqueta=(char *)malloc(t);
strcpy(etiqueta,"Sra.");
}
else
{
etiqueta=(char *)malloc(t);
strcpy(etiqueta,"");
}

strcat(etiqueta,prim);
strcat(etiqueta," ");
strcat(etiqueta,ult);

return etiqueta;

Pag.4/5 - Jorge Santos

Exerccios Aulas Prticas


4. Criar uma funo que cria uma string com nome completo de uma pessoa,
nome esse que lido do teclado palavra a palavra. O parmetro n indica com
quantas palavras e' composto o nome.
Nota: A string deve criada com o tamanho estritamente necessrio.
Resoluo:
char *lerNomeCompleto(int n)
{
int i,t;
char *nome, palavra[30];

t=1;
nome=(char*)malloc(t*sizeof(char));
nome[0]='\0';

for(i=1; i<=n; i++)


{
printf("\nNome %d:",i);
scanf("%s",&palavra);
t+=strlen(palavra)+1;
nome=(char*)realloc(nome,t);
strcat(nome,palavra);
strcat(nome," ");
}

/*retirar o espaco que existe a mais no ultimo caso*/


nome[strlen(nome)-1]='\0';

return nome;
}

Pag.5/5 - Jorge Santos

Você também pode gostar