Ir ao conteúdo
  • Cadastre-se
Mayk.hsm

Conceito de for em dois casos parecidos

Recommended Posts

 

Olá, dúvida rápida. Estou tentando entender como inverter uma string, então montei um código básico para depois aplicar o conceito na atribuição de uma string em outra.

Mas estou com problemas.

esse é o código teste.

#include <stdio.h>
#include <stdlib.h>


int main(){

	char NOME[5];
	int i;

	printf("Digite uma frase\n");
	scanf("%4[^\n]",&NOME);

	for (i=0;i<4;i++)
	printf("%c\n",NOME[i]);

	for (i=3;i==0;i--)
	printf("%c\n",NOME[i]);	



	return 0;
}

Por que esse trecho funciona? (esse apresenta na ordem normal)

...
for (i=0;i<4;i++)
	printf("%c\n",NOME[i]);

e esse não?(porque o conceito do for não está funcionando aqui? para apenas apresentar ao contrário.)

for (i=3;i==0;i--)
	printf("%c\n",NOME[i]);	

valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Mayk.hsm A primeira lê-se "i é igual a 0, enquanto a variável i for menor do que o número quatro, repita o loop. Ao final do loop adicione mais 1 na variável i"

for (i=0;i<4;i++)


A segunda lê-se: "i é igual a 3, enquanto a variável i for igual ao número 0, repita o loop. Ao final do loop adicione mais 1 na variável i"

for(i=3; i == 0; i--)

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@CiroboyBR Orra cara. Obrigado. 

Com o que você escreveu, percebi que não estava usando o comando for corretamente em todos os códigos que fiz.

Agora peguei a lógica, valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você quiser trabalhar com strings em C eu recomendo a blibioteca do curso CS50 da Havard vai facilitar muito sua vida.

Tm funções como: GetString() e GetInt() que facilita muito. GetInt() por exemplo já verifica se a entrada digitada é um int.

 

Por exemplo:

 

#include <stdio.h>
#include <string.h>
#include "cs50.h"

int main(void)
{
  string nome;
  int tam; // tamanho da string
  
  printf("Digite sem nome: ");
  // lê uma string do teclado
  nome = GetString();
  tam = strlen(nome); // inicialza tam com o tamanho da string

  //i = tam - 1 para pecorrer a string corretamente
  for(int i = tam - 1; i >= 0; i--)
    printf("%c", nome[i]);
    
  printf("\n");
}

Você pode baixar e irá facilitar seus estudos daqu pra frente.

library50-c-5.zip

Editado por daniel.oliveira
Corrigir erros de compilação e lógica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×