Progarma Nome em C

1. Progarma Nome em C

João Santos Vieira Junior
ViciadoEmLinux

(usa Debian)

Enviado em 18/01/2023 - 20:58h

Estou fazendo um programa para exibir o nome completo da pessoa em C:

O Código é este:

include <stdio.h>

int main (void){
char Nome,sobrenome,NomeCompleto;

printf("Qual o seu nome?");
Scanf ("%s",Nome);
printf("Qual o seu sobrenome?");
Scanf ("%s",Sobrenome);
NomeCompleto=Nome+Sobrenome;
printf("Qual o seu nome completo");
Scanf ("%s",NomeCompleto);
}

A lógica está certa,mas o programa está errado,como faço um programa em C para exibir o nome da pessoa?



  


2. Re: Progarma Nome em C

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 18/01/2023 - 20:58h

Para criar um programa em C que exiba o nome da pessoa e seu sobrenome, primeiro você precisa armazenar os dois nomes. Para isso, use variáveis do tipo char, criando duas variáveis para armazenar o nome e o sobrenome. Em seguida, você precisa usar o comando scanf() para ler o nome e o sobrenome digitado e armazená-los nas variáveis. Depois, você pode usar o comando printf() para exibir o nome da pessoa seguido do seu sobrenome, usando uma variável para armazenar o nome completo que é criada ao juntar os dois nomes. Segue o código:


#include <stdio.h>

int main (void){
char nome[50], sobrenome[50], nomeCompleto[100];

printf("Qual o seu nome? ");
scanf("%s", nome);
printf("Qual o seu sobrenome? ");
scanf("%s", sobrenome);

strcpy(nomeCompleto, nome);
strcat(nomeCompleto, " ");
strcat(nomeCompleto, sobrenome);

printf("Qual o seu nome completo: %s\n", nomeCompleto);

return 0;
}



3. OK

João Santos Vieira Junior
ViciadoEmLinux

(usa Debian)

Enviado em 18/01/2023 - 21:03h


alexabolada escreveu:

Para criar um programa em C que exiba o nome da pessoa e seu sobrenome, primeiro você precisa armazenar os dois nomes. Para isso, use variáveis do tipo char, criando duas variáveis para armazenar o nome e o sobrenome. Em seguida, você precisa usar o comando scanf() para ler o nome e o sobrenome digitado e armazená-los nas variáveis. Depois, você pode usar o comando printf() para exibir o nome da pessoa seguido do seu sobrenome, usando uma variável para armazenar o nome completo que é criada ao juntar os dois nomes. Segue o código:


#include <stdio.h>

int main (void){
char nome[50], sobrenome[50], nomeCompleto[100];

printf("Qual o seu nome? ");
scanf("%s", nome);
printf("Qual o seu sobrenome? ");
scanf("%s", sobrenome);

strcpy(nomeCompleto, nome);
strcat(nomeCompleto, " ");
strcat(nomeCompleto, sobrenome);

printf("Qual o seu nome completo: %s\n", nomeCompleto);

return 0;
}


Como faço para o nome completo aceitar espaço?




4. Re: Progarma Nome em C

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 18/01/2023 - 21:04h

Para o seu código aceitar espaço entre o nome e o sobrenome, você precisará usar variáveis do tipo char para armazenar os dados digitados pelo usuário. Além disso, você precisará usar o comando scanf() para ler o nome e o sobrenome digitado e armazená-los nas variáveis. Por exemplo, o código a seguir usa o comando scanf() para ler o nome e o sobrenome do usuário e armazena-os nas variáveis nome e sobrenome. Depois, essas variáveis são usadas para criar uma variável que armazena o nome completo, que é criada ao juntar os dois nomes.


#include <stdio.h>

int main (void){
char nome[50], sobrenome[50], nomeCompleto[100];

printf("Qual o seu nome? ");
scanf("%s", nome);
printf("Qual o seu sobrenome? ");
scanf("%s", sobrenome);

strcpy(nomeCompleto, nome);
strcat(nomeCompleto, " ");
strcat(nomeCompleto, sobrenome);

printf("Qual o seu nome completo: %s\n", nomeCompleto);

return 0;
}



5. OK

João Santos Vieira Junior
ViciadoEmLinux

(usa Debian)

Enviado em 18/01/2023 - 21:09h

Eu faço o programa certinho,mas aparece a seguinte tela abaixo:O Nome completo não aparece,porque?




6. Re: Progarma Nome em C

Buckminster
Buckminster

(usa Debian)

Enviado em 18/01/2023 - 21:39h

@alexabolada
O que tem de errado neste código?

#include <stdio.h>

int main (void){
char nome[50], sobrenome[50], nomeCompleto[100];

printf("Qual o seu nome? ");
scanf("%s", nome);
printf("Qual o seu sobrenome? ");
scanf("%s", sobrenome);

strcpy(nomeCompleto, nome);
strcat(nomeCompleto, " ");
strcat(nomeCompleto, sobrenome);

printf("Qual o seu nome completo: %s\n", nomeCompleto);

return 0;
}


________________________________________________
Always listen the Buck!


7. Re: Progarma Nome em C

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 18/01/2023 - 21:39h

Resposta: Este código não observa as melhores práticas, pois não está usando a função fgets() para ler as strings, e sim a função scanf(), que não é segura pois não é possível limitar o tamanho da string que será lida. Além disso, não informamos um número limite de caractéres para o array nomeCompleto, o que pode ocasionar um buffer overflow. É recomendado usar a função snprintf() antes da função strcat() deste modo: snprintf(nomeCompleto, sizeof(nomeCompleto), \"%s %s\", nome, sobrenome);.


8. OK

João Santos Vieira Junior
ViciadoEmLinux

(usa Debian)

Enviado em 19/01/2023 - 08:25h


PequenoBuiu1987 escreveu:


alexabolada escreveu:

Para criar um programa em C que exiba o nome da pessoa e seu sobrenome, primeiro você precisa armazenar os dois nomes. Para isso, use variáveis do tipo char, criando duas variáveis para armazenar o nome e o sobrenome. Em seguida, você precisa usar o comando scanf() para ler o nome e o sobrenome digitado e armazená-los nas variáveis. Depois, você pode usar o comando printf() para exibir o nome da pessoa seguido do seu sobrenome, usando uma variável para armazenar o nome completo que é criada ao juntar os dois nomes. Segue o código:


#include <stdio.h>

int main (void){
char nome[50], sobrenome[50], nomeCompleto[100];

printf("Qual o seu nome? ");
scanf("%s", nome);
printf("Qual o seu sobrenome? ");
scanf("%s", sobrenome);

strcpy(nomeCompleto, nome);
strcat(nomeCompleto, " ");
strcat(nomeCompleto, sobrenome);

printf("Qual o seu nome completo: %s\n", nomeCompleto);

return 0;
}


Como faço para o nome completo aceitar espaço?





strcpy(nomeCompleto, nome);

Essa instrução está ao contrário.
Você tem que copiar nome para o nomeCompleto.




9. Re: Progarma Nome em C

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 19/01/2023 - 08:26h

strcpy(nomeCompleto, nome); \r\n\r\nPara exibir o nome completo aceitando espaço, você pode usar o comando strcat. Ele irá juntar o nome e o sobrenome na variável nomeCompleto. O código ficaria assim: \r\n\r\n
\r\n#include <stdio.h>\r\n \r\nint main (void){\r\n  char nome[50], sobrenome[50], nomeCompleto[100];\r\n  \r\n  printf(\"Qual o seu nome? \");\r\n  scanf(\"%s\", nome);\r\n  printf(\"Qual o seu sobrenome? \");\r\n  scanf(\"%s\", sobrenome);\r\n \r\n  strcpy(nomeCompleto, nome);\r\n  strcat(nomeCompleto, \" \");\r\n  strcat(nomeCompleto, sobrenome);\r\n  \r\n  printf(\"Qual o seu nome completo: %s\\n\", nomeCompleto);\r\n  \r\n  return 0;\r\n}\r\n 



10. Re: Progarma Nome em C

aguamole
aguamole

(usa KUbuntu)

Enviado em 19/01/2023 - 13:09h

@alexabolada corrija isso aqui:
\r\n#include <stdio.h>\r\n \r\nint main (void){\r\n char nome[50], sobrenome[50], nomeCompleto[100];\r\n \r\n printf(\"Qual o seu nome? \");\r\n scanf(\"%s\", nome);\r\n printf(\"Qual o seu sobrenome? \");\r\n scanf(\"%s\", sobrenome);\r\n \r\n strcpy(nomeCompleto, nome);\r\n strcat(nomeCompleto, \" \");\r\n strcat(nomeCompleto, sobrenome);\r\n \r\n printf(\"Qual o seu nome completo: %s\\n\", nomeCompleto);\r\n \r\n return 0;\r\n}\r\n


11. Re: Progarma Nome em C

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 19/01/2023 - 13:09h

Vamos responder esta dúvida! Para corrigir o código mostrado, crie uma cadeia de caracteres 'nomeCompleto' para armazenar o nome e o sobrenome em conjunto, usando a função 'strcpy' para copiar o conteúdo da variável 'nome' para ela. Em seguida, utilize 'strcat' para concatenar o conteúdo da variável 'sobrenome' na cadeia de caracteres 'nomeCompleto'. Por fim, utilize 'printf' para imprimir o resultado da variável 'nomeCompleto'.

Aqui está o código corrigido:

#include <stdio.h>

int main (void){
char nome[50], sobrenome[50], nomeCompleto[100];

printf("Qual o seu nome? ");
scanf("%s", nome);
printf("Qual o seu sobrenome? ");
scanf("%s", sobrenome);

strcpy(nomeCompleto, nome);
strcat(nomeCompleto, " ");
strcat(nomeCompleto, sobrenome);

printf("Qual o seu nome completo: %s\n", nomeCompleto);

return 0;
}







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts