Exibir strings [RESOLVIDO]

1. Exibir strings [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 11/11/2016 - 15:06h

Olá Pessoal! Tenho que criar um programa em C que tenha um laço while, e pergunte 4 vezes o nome do usuário e assim que terminar o laço, o programa mostre os 4 nomes digitados pelo usuário.
No entanto tive várias tentativas e vários erros seguidos.
A questão é: Como posso exibir as 4 strings? Tenho que criar um vetor para cada string?
Meu código é como se segue:

#include <stdio.h>

int main(void)
{
char string[10000];
int i = 0;

while(i<4)
{
printf("Digite seu nome:");
scanf("%s",nome);
i++;
}
for(i=0;i<4;i++)
{
printf("NOME: %s",nome);
}
}




  


2. Re: Exibir strings

Uilian Ries
uilianries

(usa Linux Mint)

Enviado em 11/11/2016 - 15:13h

Você precisa condicionar as strings em um array:


char nomes [4] [256];

for (int n = 0; n < 4; n++) {
scanf("%s", nomes[n]);
}


Evite usar o nome string, pra variável. Em C++, string é uma palavra reserva.
--
Uilian Ries
Linux Counter: 521986

----
(EDIT: troquei o nome da variável de i para n, porque o fórum estava interpretando com marcação de itálicos. -- paulo1205)


3. Re: Exibir strings [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 11/11/2016 - 15:41h

uilianries escreveu:

Evite usar o nome string, pra variável. Em C++, string é uma palavra reserva.


Não chega a ser uma palavra reservada, mas é um tipo definido na biblioteca padrão, com o nome std::string.

Como muita gente coloca em seus programas a diretiva using namespace std;, então o nome string pode ser importado, e pode causar confusão.


4. Re: Exibir strings [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 11/11/2016 - 15:47h

uilianries escreveu:

Você precisa condicionar as strings em um array:


char nomes [4] [256];

for (int n = 0; n < 4; n++) {
scanf("%s", nomes[n]);
}


Evite usar o nome string, pra variável. Em C++, string é uma palavra reserva.
--
Uilian Ries
Linux Counter: 521986

----
(EDIT: troquei o nome da variável de i para n, porque o fórum estava interpretando com marcação de itálicos. -- paulo1205)


Então nesse caso deve ser uma matriz?


5. Re: Exibir strings

Paulo
paulo1205

(usa Ubuntu)

Enviado em 11/11/2016 - 15:58h

Natã Marques escreveu:

uilianries escreveu:

Você precisa condicionar as strings em um array:

char nomes [4] [256];

for (int n = 0; n < 4; n++) {
scanf("%s", nomes[n]);
}


Então nesse caso deve ser uma matriz?


Mais ou menos.

Na prática -- e eu sugiro que você encare dessa forma --, é um vetor de strings.

O fato de que strings em C têm suas representações internas como vetores de caracteres acaba deixando a coisa com um jeito parecido com a de uma matriz (ou vetor de vetores). Só que você tipicamente não trata as strings caráter a caráter (a não ser que esteja procurando um caráter específico dentro de uma string). Em outras palavras, quando você está trabalha com vetores de strings, tipicamente vai fazer referência a cada string que é elemento do vetor (no código acima, seria algo como nomes[n], implicando a n-ésima string do vetor de strings), não a cada caráter (que teria a forma nomes[n][m], que indicaria o m-ésimo caráter que compõe a n-ésima string do vetor de strings).


6. Re: Exibir strings [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 11/11/2016 - 17:08h

Pessoal valew!!
Consegui resolver e entender de acordo com a dica de vocês.
Valew mesmo pela ajuda.
Vocês são D+!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts