Ir ao conteúdo

Posts recomendados

Postado

:confused: Sou iniciante me programação e preciso resolver um exercício, mas eu realmente não faço ideia de como fazer. Alguém poderia me ajudar 

 

Segue abaixo, a minha tentativa:

Crie um programa em c/c++ que peça ao usuário que informe um nome, e o programa mostre o primeiro e o último carácter desse nome.

 

#include <stdio.h>

#include <string.h>

int main ()

{

   char nome;

   printf("informe um nome: ");

   fgets(nome, stdin);

 

return 0;

   

}

Postado

@r1castro1 o tipo string em C é um vetor de caracteres, essa é a maneira correta de utilizar:

 

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

int main() {
  char nome[100];

  printf( "informe um nome: " );
  fgets( nome, 100, stdin);

  printf("\nO tamanho da string eh: %d", strlen(nome));

  return 0;
}


Perceba que utilizei a função strlen(); para determinar o tamanho (quantos caracteres), a string tem.

 

pense que se nome[10] é um vetor, qual seria a primeira posição desse vetor?
 

nome[0]

bem agora basta você utilizar a função strlen(); para determinar qual a ultima posição e imprimi-la.

para imprimir use:
 

printf("%c", nome[3]); // imprime a 4ª posição da string

printf("%s", nome); // imprime a string toda

 

Postado

@CiroboyBR - Essa resposta foi muito mais do que eu esperava. Foi uma aula. Muito obrigado!  Agora consegui entender bem para que serve a função strlen.

Última dúvida:

Como imprimir o ultimo carácter de um nome qualquer digitado, pois se é o usuário que vai digitar o nome, como saber previamente o tamanho da string e a posição do último caractere?

Postado

@r1castro1 existem 2 maneiras de se fazer isso, a mais simples é utilizando a função strlen(); para pegar o tamanho da string. Depois você faz uma conta simples e determina qual o ultimo caractere de qualquer string digitada.

Postado
2 horas atrás, CiroboyBR disse:

@r1castro1existem 2 maneiras de se fazer isso, a mais simples é utilizando a função strlen(); para pegar o tamanho da string. Depois você faz uma conta simples e determina qual o ultimo caractere de qualquer string digitada.

@CiroboyBR  Ok, das duas maneiras, eu só visualizei uma (rsrsrs). Porém, eu tentei de varias maneiras imprimir as posições do primeiro e do ultimo caractere, mas não obtive exito.

Acredito, que para dominar esse tipo de problema, é necessário saber imprimir as posições. Então, se puder me ajudar com mais essa dúvida, acredito que poderemos encerrar o tópico. De qualquer forma, muito obrigado pela ajuda. DEUS O ABENÇOE!

 

Veja como ficou o meu código:

 

#include<stdio.h>
#include<string.h>
int main()
{
   char nome[30];
   int tam;

   printf("\nDIGITE UM NOME: ");

   gets(nome);
   tam=strlen(nome);

   printf("\n\nO primeiro caracter digitado foi: %c ", nome[0]);
   printf("\n\nO ultimo caracter digitado foi: %c \n\n",nome[tam-1]);

   return 0;
}
 

Postado

@r1castro1 Muito bem, é assim mesmo, também da pra usar a strlen(); direto no vetor de char.

 

 #include<stdio.h>
#include<string.h>
int main()
{
   char nome[30];

   printf("\nDIGITE UM NOME: ");

   gets(nome);

   printf("\n\nO primeiro caracter digitado foi: %c ", nome[0]);
   printf("\n\nO ultimo caracter digitado foi: %c \n\n",nome[strlen(nome) - 1]);

   return 0;
}


A 2ª maneira é percorrendo todo o vetor até achar '\0', pois quando você digita uma string, a função de escrita gets(); coloca um '\0' após o ultimo caractere digitado. Assim o printf pode imprimir corretamente a string.

 

 #include<stdio.h>
#include<string.h>
int main()
{
   char nome[30];
   int i;

   printf("\nDIGITE UM NOME: ");

   gets(nome);

   for ( i = 0; nome[i] != '\0'; i ++)
     printf("\nPercorreu nome[%d] = %c", i, nome[i]);

   printf("\n\na ultima letra da frase eh: %c", nome[i - 1]);



   return 0;
}

 

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