Bem-vindo(a) ao Fórum do Guia do Hacker.
Guia do Hacker - Seu Guia Completo de Informação Digital

Fórum do Guia do Hacker » Programação e Banco de Dados » Programação Desktop » C/C++/C# » C / C++ Programa lê nome e sobrenome

C/C++/C# Sobre programação C/C++/C#.

Tópicos Similares
Tópico Tópico Iniciado Por Fórum Respostas Última Mensagem
Ajuda Programa Hosoft MKT como resolver aquele problema que fala que o programa parou de funcinar. / Windons 7 64 bits fablin Ferramentas Hacker 4 23-07-2011 00:59
Olá Meu nome é Thiago barbosa.t Apresentações 2 24-03-2011 01:17
Tutorial Seu Nome no Iniciar CryT3k Matérias/Tutoriais/Dicas 12 08-06-2010 15:05

Resposta
Ferramentas do Tópico vBmenu Seperating Image Modos de Exibição vBmenu Seperating Image
C / C++ Programa lê nome e sobrenome
Antigo 19-09-2017, 20:17   #1
Crash_X
Programador
 
Avatar de Crash_X
 
Status: Programador
Registrado em: Dec 2009
Localização: /home/junior
Posts: 468
Agradeceu: 101
Agradecido 347 Vezes em 148 Posts
Crash_X é um desconhecido na estrada
Arrow Programa lê nome e sobrenome

Código:
#include <stdio.h>
#include <locale.h>

int main()
{
    setlocale(LC_ALL, "Portuguese");
      char nome[100];
      char sobrenome[100];
      printf("Digite seu nome:\n");
      scanf("%s", nome);
      printf("Digite seu sobrenome:\n");
      scanf("%s", sobrenome);
      printf("Seu nome é: %s %s\n", nome, sobrenome);
      return 0;
}
Crash_X está offline   Responder com Citação
Links Patrocinados
Antigo 14-01-2018, 18:43   #2
Vetus
Programador
 
Avatar de Vetus
 
Status: Programador
Registrado em: Jul 2011
Localização: Rabbit Hole
Posts: 474
Agradeceu: 335
Agradecido 562 Vezes em 213 Posts
Vetus é um desconhecido na estrada
Padrão

Citação:
Postado Originalmente por Crash_X Ver Post
Código:
#include <stdio.h>
#include <locale.h>

int main()
{
    setlocale(LC_ALL, "Portuguese");
      char nome[100];
      char sobrenome[100];
      printf("Digite seu nome:\n");
      scanf("%s", nome);
      printf("Digite seu sobrenome:\n");
      scanf("%s", sobrenome);
      printf("Seu nome é: %s %s\n", nome, sobrenome);
      return 0;
}
Usar scanf para ler strings é um problema por falta de limitação de caracteres, isso pode gerar um stack overflow se passar do limite de caracteres que sua string(ou vetor de caracteres suporta).
A questão é que mesmo utilizando fgets se tu passa do limite de caracteres que está setado nele ou que vetor suporta você vai ter um undefined behaviour.
Basicamente tu precisa setar um vetor enorme pra não quebrar teu programa por undefined behaviour, o que ainda pode acontecer anyway, e a questão pior é que nem os debugger como valgrind vão conseguir identificar o problema.
__________________
Yes, I am a criminal. My crime is that of curiosity. My crime is
that of judging people by what they say and think, not what they look like.
My crime is that of outsmarting you, something that you will never forgive me
for.

I am a hacker, and this is my manifesto. You may stop this individual,
but you can't stop us all... after all, we're all alike.
Vetus está offline   Responder com Citação
Resposta

Tags
100, anime, app, batch, code, criar, dados, dica, grupo, hackers, html, instalar, juntar, lista, nome, php, por, programa, sca, segurança, senha, seu, sobre

Ferramentas do Tópico
Modos de Exibição

Regras para Posts
Você não pode postar novos tópicos
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar seus posts

Código [IMG] Sim
Código HTML Não

Ir para...


 

Horários baseados na GMT -3. Agora são 20:32.