PALINDROME
Publicado por Thiago 07/04/2006
[ Hits: 11.923 ]
Este pequeno programa verifica se uma string de no máximo 50 caracteres é palíndrome ou não.
Palíndrome é a palavra que quando lida de frente para trás e de trás para frente tem a mesma senquência de caracteres.
Ex: ARARA
Sugestões serão bem vindas.
/**************************
Programa: palindrome.c
Autor: thiagoamm
Data: 02/04/06
***************************/
/* Bibliotecas */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* Cabecalho de funcoes e sub-rotinas */
void verifica(char *str, int tam, int *cond);
/* Funcao principal */
int main(void)
{
char string[50],continua;
int condicao,tamanho;
do
{
condicao = 1;
printf("\nInforme a palavra a ser verificada: ");
fflush(stdin);
fgets(string,50,stdin);
/* Tamanho da string meno o '{FONTE}' */
tamanho = strlen(string) - 1;
printf("\n --> Tamanho da string: %i\n",tamanho);
/* Invocando sub-rotina */
verifica(string,tamanho,&condicao);
if (condicao != 0)
printf("\n\n--> PALINDROME \n\n");
printf("\nDeseja continuar (s/n) ? ");
fflush(stdin);
continua = getchar();
} while (continua == 's' || continua == 'S');
printf("\n\n");
return(0);
}
/*
**********************
Sub-rotina verifica
**********************
Responsavel por verificar se uma string e palindrome.
Uma string e palindrome quando tem a mesma sequencia
de caracteres lida em ordem natural e em ordem inversa.
A logica desenvolvida consiste em dividir a string ao meio,
e utilizar dois contadores para indexa-la. O primeiro contador
percorre a string do inicio ate sua metade. O segundo contador
a percorre do fim ate sua metade. Sao comparadas as posicoes
indexadas pelo primeiro e segundo contador e caso alguma seja
diferente o laco (estrutura de repeticao) e imediatamente interrompido.
*/
void verifica(char *str, int tam,int *cond)
{
int i,j,metade_str;
j = tam - 1;
metade_str = (tam - 1) / 2;
for (i = 0; i <= metade_str; i++, j--)
{
/* Comparacao para strings de tres caracteres ou mais */
if (str[i] != str[j])
{
*cond = 0;
break;
}
}
}
Determinando resultado de uma partida futebol (iniciante)
Nenhum comentário foi encontrado.
Papagaiando o XFCE com temas e recursos
WhatsApp com Chamadas no Linux via Waydroid
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Removendo entradas de boot UEFI "fantasmas" via terminal
Atualizações de Segurança Automáticas no Debian
Como cortar as partes de um vídeo com passagens de áudio em branco
Tiling automático no KDE Plasma
SNMP Scan no OCS Inventory só funciona com HTTPS corretamente configurado
Uma pergunta bem simples mas não achei resposta (ainda) [RESOLVIDO] (2)
Tentativa de instalar Linux em um notebook HP 246 G6 (2)
O que você está ouvindo agora? [2] (228)









