Ir ao conteúdo

Posts recomendados

Postado

Tentei fazer um programa que calculasse o número de letras de uma frase, porém não consegui, se alguém me conseguir ajudar agradeço🤓

#include <stdio.h>
#include <stdlib.h>
int main ()
{

int x = 0, contador = 0, i;
char frase[100];

	puts ("Digite uma frase :");
	gets (frase);
      while (frase[i] != '\0'){
	  
	  if (frase[i] != '\0') contador++; i++;}

printf("A frase %s tem %d letras", frase, contador);

}

 

  • Amei 1
  • Membro VIP
Postado

Que tal algo como ...

gets (frase);
while (frase[++contador]); // :o)
printf("A frase %s tem %d letras", frase, contador);

Te desafio a não contar espaços. Faça e nos mostre ok?

😉

Ah sim.. seu errinho está aqui...

1 hora atrás, Simão. disse:
while (frase[i] != '\0')

Te desafio a descobrir porquê 🙃

  • Curtir 2
Postado

@.if

#include <stdio.h>
#include <stdlib.h>
int main ()
{

int contador = 1, i;
char frase[100];

	puts ("Digite uma frase :");
	gets (frase);
      while (frase[i] != '\0'){

	  if (frase[i] != ' ') contador++; i++;}

printf("A frase %s tem %d letras", frase, contador);

}

fiz desta forma agora, testa aí, tá a funcionar

  • Curtir 3
Postado

@Simão.    infelizmente , não funcionar ,  precisa iniciaLizar todas as variáveis logo no início do código , senão o compilador não saberá de onde começar a contar , e sua variável i tem um valor desconhecido ,  assim  ele começa a testar as letras de posições inexistente dessa frase que sempre começa na posição zero ,  e outra coisa é Que você está usando comandos muitos antiGos e já descartados a muito tempo , como gets , 

https://idqna.madreview.net/

e meLHor mesmo usar "fgets" ,  e também você não precisa criar um programa que calcule a qtd de letras de frase na linguagem  c  , pois já tem uma função da biblioteca "string.h"  que já faz isso  , ao usar "fgets " você irá usa la  para remover o newLine pego por "fgets" ,  para na Hora de escrever essa frase na tela  o programa não pular linha de baixo , e essa parte poderia ser assim   , ou de outras muitas Formas que você queira :

int x           =    0;
int contador    =    0;
int i           =    0;
char frase[100] = {""};
puts("Digite uma frase :");    /// putzgrila
fgets(frase , sizeof(frase) , stdin);
frase[strlen(frase) - 1 ] = 0;
while (frase[i] != 0 )
{
  contador++; i++;
}

e nem precisa perder tempo escrevendo esses caracteres    ' \   '  , bastam colocar mesmo o Que interessa  que Só o zero  "0"  de final de string na linguagem  c  .

  • Curtir 1
  • Obrigado 1
Postado
9 minutos atrás, devair1010 disse:

@Simão.    infelizmente , não funcionar ,  precisa iniciaLizar todas as variáveis logo no início do código , senão o compilador não saberá de onde começar a contar , e sua variável i tem um valor desconhecido ,  assim  ele começa a testar as letras de posições inexistente dessa frase que sempre começa na posição zero ,  e outra coisa é Que você está usando comandos muitos antiGos e já descartados a muito tempo , como gets , 

https://idqna.madreview.net/

e meLHor mesmo usar "fgets" ,  e também você não precisa criar um programa que calcule a qtd de letras de frase na linguagem  c  , pois já tem uma função da biblioteca "string.h"  que já faz isso  , ao usar "fgets " você irá usa la  para remover o newLine pego por "fgets" ,  para na Hora de escrever essa frase na tela  o programa não pular linha de baixo , e essa parte poderia ser assim   , ou de outras muitas Formas que você queira :

int x           =    0;
int contador    =    0;
int i           =    0;
char frase[100] = {""};
puts("Digite uma frase :");
fgets(frase , sizeof(frase) , stdin);
frase[strlen(frase) - 1 ] = 0;
while (frase[i] != 0 )
{
  contador++; i++;
}

e nem precisa perder tempo escrevendo esses caracteres    ' \   '  , bastam colocar mesmo o Que interessa  que Só o zero  "0"  de final de string na linguagem  c  .

Estou a ir corrigir...😶

  • Amei 1
  • 1 ano depois...
Postado

@devair1010

Boa noite!

 

Seu programa tem duas falhas:

#1

ac:6:5: erro: variável não utilizada x [-Werror=unused-variable]

c'11 - gcc'11.4

 

#2

Pergunta, porém, não escreva a resposta!

 

Acho que revisei essas duas falhas acima:


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

int main ()
{
 int contador    =    0;
 int i           =    0;
 char frase[100] = {""};
 puts("Digite uma frase :");    /// putzgrila
 fgets(frase , sizeof(frase) , stdin);
 frase[strlen(frase) - 1 ] = 0;
 while (frase[i] != 0 )
 {
  contador++; i++;
 }
 printf ("%s%d%c","|---> ",contador,'\n');
 putchar ('\n');
}

image.png.ecd9a5973671c13807610bd4c612a4ce.pngAinda há outra, ele responde (,) e (!) como letras.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!