Ir ao conteúdo
  • Cadastre-se

C questão sobre strings/ identificação do erro


Posts recomendados

Não consigo identificar o erro no programa:

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define TAM 500

void invertestring (char str[]){
    int tam = strlen(str);
    int aux;
    for (int i=0; i< tam/2; i++){
        aux = str[i];
        str[i]= str [tam-1-i];
        str[tam-1-i] = aux;
    }
    puts(str);
}

int main(){
    char str[TAM];
    scanf("%[^\n]s", str);
    invertestring(str);
    return 0;
}

 

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

Em 30/07/2021 às 18:28, Caio Fagundes21 disse:

mas no lugar, so da letras aleatórias

O código está mostrando o resultado correto, mas isso pode acontecer em string com acento e normalmente não se usa acentuação nesses exercícios de console.

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

Olá!

 

#1 este é o algoritmo ou função: inversão dos valores nas posições equidistantes, excluído a última (tam).

Em 29/07/2021 às 19:56, Caio Fagundes21 disse:

void invertestring (char str[]){
    int tam = strlen(str);
    int aux;
    for (int i=0; i< tam/2; i++){
        aux = str[i];
        str[i]= str [tam-1-i];
        str[tam-1-i] = aux;
    }
    puts(str);
}

 

#2 esta é a "result" ou saída

Em 30/07/2021 às 18:28, Caio Fagundes21 disse:

 Result

                      Espaços: 4

                      Espaços: 6

 

mas no lugar, so da letras aleatórias

 

 

Há lógica que relacione função e "result"? Não!

E necessário saber quais os valores de ENTRADA e SAÍDA para desenvolver sua lógica (PROCESSO)!

Explique-se 

[:)] @Caio Fagundes21 

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

@mauro_b     creio que o  @Caio Fagundes21    esteja usando outro algoritmo para mostrar o resultado , pois nele está escrevendo o número de espaços que tem na string , e nesse que ele postou não mostra esses números de espaços , mas apenas a dita string resultante da inversão feita na função   "void invertestring (char*    str )" ,   mas tudo bem isso acontece .

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

Curso de Hacker Ético

LANÇAMENTO!

CLIQUE AQUI E CONFIRA!

* Este curso não é ministrado pela equipe do Clube do Hardware.