Ir para conteúdo
Fórum Script Brasil
  • 0

Programa Para Digitar O Nome


sl@ckw@re

Pergunta

A minha dúvida é a seguinte:

Na linguagem C não existe a variável String?

Pois eu queria fazer um programa para digitar o nome da pessoa e depois ler o nome da pessoa.

Exemplo:

{

Escreva("Qual é o seu nome:");

leia(nome);

Escreva("Qual é o seu sobrenome:");

leia(sobrenome)

Escreva("Seu nome é:",nome,sobrenome);

}

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Embora o tipo string não exista em C, representamos uma string como um vetor de caracteres terminado em '\ 0' (null terminated strings).

Da para fazer o seu programa assim:

int main(){
      char nome[100];
      char sobrenome[100];
      printf("Digite seu nome\n");
      scanf("%s\n", nome);
      printf("Digite seu sobrenome\n");
      scanf("%s\n", sobrenome");
      printf("Seu nome é: %s %s\n", nome, sobrenome);
      return 0;
}

Link para o comentário
Compartilhar em outros sites

  • 0

O programa não foi,veja:

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

int main()
{
      char nome[100];
      char sobrenome[100];
      printf("Digite seu nome\n");
      scanf("%s\n", nome);
      printf("Digite seu sobrenome\n");
      scanf("%s\n", sobrenome");
      printf("Seu nome é: %s %s\n", nome, sobrenome);
      return 0;
}

Erro na compilação:

cd '/home/kurumin/nome/debug' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" make -k

make all-recursive

Making all in src

gcc -DHAVE_CONFIG_H -I. -I.. -I/home/kurumin/nome/src -O0 -g3 -muito nome.o -MD -MP -MF .deps/nome.Tpo -c -o nome.o /home/kurumin/nome/src/nome.c

/home/kurumin/nome/src/nome.c: In function 'main':

/home/kurumin/nome/src/nome.c:11: error: missing terminating " character

/home/kurumin/nome/src/nome.c:12: error: expected ')' before 'printf'

/home/kurumin/nome/src/nome.c:14: error: expected ';' before '}' token

/home/kurumin/nome/src/nome.c:5: warning: return type of 'main' is not 'int'

make[2]: ** [nome.o] Erro 1

make[2]: O alvo `all' não foi reprocessado por causa de erros.

make[2]: Nada a ser feito para `all-am'.

make[1]: ** [all-recursive] Erro 1

make: ** [all] Erro 2

*** Saiu com estado: 2 ***

Editado por sl@ckw@re
Link para o comentário
Compartilhar em outros sites

  • 0

Desculpe. Tem um pequeno erro no meu codigo. como eu tinha digitado direto aqui, coloquei um " a mais em uma das linhas. o codigo correto é :

#include <stdio.h>

int main()
{
      char nome[100];
      char sobrenome[100];
      printf("Digite seu nome\n");
      scanf("%s\n", nome);
      printf("Digite seu sobrenome\n");
      scanf("%s\n", sobrenome);
      printf("Seu nome é: %s %s\n", nome, sobrenome);
      return 0;
}

Link para o comentário
Compartilhar em outros sites

  • 0

O seu programa tem um pequeno erro,por causa do comando "\n" no "Scanf",sendo assim toda vez que você executar o programa,você terá que digitar o seu nome>apertar enter>digitar outro nome e apertar enter,depois desse processo e que será executada a pergunta("Digite o seu sobrenome").

Para corrigir o programa é só tirar o"\n" do "scanf",ficando dessa maneira:

#include <stdio.h>


int main()
{
      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;
}

Link para o comentário
Compartilhar em outros sites

  • 0
Em 13/05/2007 at 13:56, sl@ckw@re disse:

O seu programa tem um pequeno erro,por causa do comando "\n" no "Scanf",sendo assim toda vez que você executar o programa,você terá que digitar o seu nome>apertar enter>digitar outro nome e apertar enter,depois desse processo e que será executada a pergunta("Digite o seu sobrenome").

Para corrigir o programa é só tirar o"\n" do "scanf",ficando dessa maneira:

 

 

 

#include <stdio.h>


int main()
{
      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;
}

 

Poderia incluir mais uma biblioteca Sobre o idioma a locale.h assim corrigiria o acentuação ficaria assim...

#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;
}

Link para o comentário
Compartilhar em outros sites

  • 0

Boa noite , vocês não estao esquecendo de por o "&" (e comercial)??

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

int main()
{
   
      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;
}

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

Uma maneira alternativa para usar o fgets, já fazendo o tratamento de sujeira no buffer, seria colocando ele em uma função:

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

void read_string(char *the_string, int size) {

    char ch;

    fgets(the_string, size, stdin);
    strtok(the_string, "\n");
    if (strlen(the_string) == size - 1) {
        while ((ch = getchar()) != '\n' && ch != EOF);
    }
}

int main(void) {

    char nome[50], sobrenome[50];
    char nome_completo[100];

    printf("Digite seu nome: ");
    read_string(nome, 50);

    printf("Digite seu sobrenome: ");
    read_string(sobrenome, 50);

    printf("Seu nome completo: %s %s\n", nome, sobrenome);

    printf("Digite seu nome completo: "); // ler o nome completo de uma só vez
    read_string(nome_completo, 100);

    printf("Seu nome completo: %s\n", nome_completo);

    return 0;
}

Caramba! Tem um post meu aqui onde dizia não conhecer ainda o arquivo de cabeçalho (biblioteca) "locale.h" rs...

Obs: O que está sendo feito no while dentro da função é basicamente usar a função getchar em um loop

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...