Ir ao conteúdo
  • Cadastre-se

Strings.


Posts recomendados

Olá pessoal criei um programa em C que le uma string invertida das pontas ate o meio e inverte ela, gostaria de saber como acelerar seu tempo de execução alguem tem alguma ideia ?

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
int main(){
char str[100],st[100],st1[100],st2[100];
int i,j,k,x,y,n,tamanho,tam,z,a,b;

                            scanf("%d",&n);
                            setbuf(stdin,NULL);
                            while(n--){
                                gets(str);
                                tamanho = strlen(str);
                                for(i=(tamanho/2)-1,j=0;i>=0;i--){
                                    st[j] = str[i];
                                    j++;
                                }
                                st[j] = '\0';//metade invertida
                                tam = strlen(st);
                                for(y=tamanho-1,z=0;y>=tamanho/2;y--){
                                    st2[z] = str[y];
                                    z++;
                                }
                                st2[z]='\0';//outra metade invertida

                                strcat(st,st2);
                                printf("%s\n",st);

                            }

return 0;
}

Quem quiser ver como funciona esta aqui alguns testes./*

5
I ENIL SIHTHSIREBBIG S
LEVELKAYAK
H YPPAHSYADILO
ABCDEFGHIJKLMNOPQRSTUVWXYZ
VOD OWT SNEH HCNERF EGDIRTRAP A DNA SE*/

Link para o comentário
Compartilhar em outros sites

    int i;
    char s[] = "I ENIL SIHTHSIREBBIG S";
    for(i = (strlen(s)/2)-1 ; i>=0; i--) putchar(s[i]);
    for(i = strlen(s)-1 ; i>(strlen(s)/2)-1; i--) putchar(s[i]);

 

Quanto mais comparaçoes e/ou atribuiçoes fizer pior. O melhor é trabalhar em cima dos mesmos dados, ou seja, o melhor é pegar desde a metade e imprimir até o começo, depois pegar desde o final e imprimir até a metade.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!