PALINDROME
Publicado por Thiago 07/04/2006
[ Hits: 11.906 ]
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;
}
}
}
Converter um vetor em uma matriz multidimensional
Ordenar vetor - ordenação bolha
Relógio com data usando Struct
clean.h - Biblioteca para limpar um determinado espaço no terminal
Nenhum comentário foi encontrado.
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Servidor vs Computador Convencional
Como administrar uma rede Linux através da ferramenta Webmin
Como escanear portas de um servidor através da ferramenta Nmap e como alterar a porta do SSH.
Marcando e desmarcando pacotes para atualização, instalação e remoção no Debian e agregados
Audio Failure on Acer Aspire AS4738 – Intel 5 Series HD Audio (Linux M... (1)









