Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
andtoz

Matriz de strings 20x3

Recommended Posts

Boa noite, estou com dúvida em como fazer um programa :

2-Crie uma matriz bidimensional do tipo caractere (20x3), onde você deverá armazenar 20 informações sobre endereço de uma pessoa, essas informações são nome, cidade e estado. Faça um programa que forneça o armazenamento dessas informações, e após esse armazenamento solicite para o usuário qual dos 3 campos ele quer que seja feito uma classificação alfabética. Fazer a classificação de acordo com o campo solicitado e apresentar uma listagem dessa matriz classificada.

Sou iniciante e estou meio(inteiro) perdido.Se alguém puder me ajudar agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o enunciado do problema não está certo.

20 o que? 3 o que?

Uma matriz de strings de 20x3, é uma matriz de 20 linhas por 3 caracteres, e eu acho que em 3 caracteres você não consegue armazenar estas informações.

Quando se trabalha com banco de dados, a forma mais prática de armazenar informações, é através de estruturas de dados (STRUCTS). Mas, como você está começando, acredito que você nem tenha visto esse assunto ainda, não é?

Bixo! Se isso for trabalho de escola, o professor pegou pesado!

Dá pra fazer com matriz tb, mas é bem mais trabalhoso.

Primeiro de tudo é saber como uma string é armazenada em C. Depois, saber os conceitos de matrizes bi-dimensionais (vetores de strings), e depois, juntar os dois para fazer matrizes de strings.

Coisa chata, ehehehehehehe

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites
Acho que o enunciado do problema não está certo.

20 o que? 3 o que?

Uma matriz de strings de 20x3, é uma matriz de 20 linhas por 3 caracteres, e eu acho que em 3 caracteres você não consegue armazenar estas informações.

...

Na verdade, uma matriz de strings de 20x3 é uma matriz de 20 linhas por 3 colunas, e não caracteres...

E acredito que o programa quer que na primeira coluna fique armazenado o nome, na segunda a cidade e na terceira o estado... Se a noite eu tiver mais tempo eu tento postar uma explicaçao de como eu acho que esse exercicio pode ser resolvido =)

Até mais...

Tiago Massita

Compartilhar este post


Link para o post
Compartilhar em outros sites
Na verdade, uma matriz de strings de 20x3 é uma matriz de 20 linhas por 3 colunas, e não caracteres...

E acredito que o programa quer que na primeira coluna fique armazenado o nome, na segunda a cidade e na terceira o estado... Se a noite eu tiver mais tempo eu tento postar uma explicaçao de como eu acho que esse exercicio pode ser resolvido =)

Até mais...

Tiago Massita

Exatamente Tiago, o exercício é para armazenar 20 nomes na 1ªcoluna,20 cidades na 2ª e 20 estados na 3ª.E ainda tenho que pedir pro usuário qual busca ele deseja fazer.Cara tô no 1º semestre e o professor já lança uma dessas.Tô perdidão.Se puderem me ajudar agradeço.O programa colocamos para rodar no devc++.Abraço.

o q fiz até agora é:

#include<stdio.h>

#include<conio.h>

#include<string.h>

#include<stdlib.h>

int main()

{

int a,b,c;

char strings_nome[20];

char strings_cidade[20];

char strings_estado[20];

for (a=0;a<19;a++)

{

printf("Digite o nome: \n",a);

scanf("%s",strings_nome[a]);

}

for (b=0;b<19;b++)

{

printf("Digite a cidade: \n",B);

scanf("%s",strings_cidade);

}

for (c=0;c<19;c++)

{

printf("Digite o estado: \n",c);

scanf("%s",strings_estado[c]);

}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Na verdade, uma matriz de strings de 20x3 é uma matriz de 20 linhas por 3 colunas, e não caracteres...

Não. Na verdade, uma matriz de STRINGS de 20x3, é uma matriz de 20 linhas x 3 CARACTERES (sem contar a terminação). Conforme eu havia dito antes.

Não existem "colunas" em strings, e sim, caracteres.

C trata diferente strings e matrizes de inteiros.

Acho que você se confundiu.

[]'s

Editado por Maurício2006

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mauricio, acredito que entendi o que você quis dizer, porém em uma matriz de strings você deve declarar o numero de linhas, o numero de colunas e a quantidade de caracteres... Por isso se voce declarar [20][3] vai ser linhas e caracteres... ou algo assim...

Compartilhar este post


Link para o post
Compartilhar em outros sites

andtoz.

Qual o máximo de caracteres que suas strings precisam ter?

Massita.

Se eu declarar isso daqui:

char mat_string [ 10 ] [ 50 ];

Eu estou declarando uma matriz de strings de 10 linhas x 49 caracteres (mais o terminador da string NULL, o que dá uma declaração de 50 caracteres, ou, bytes).

Cada elemento dessa matriz, ou, linha, pode ter de 0 caracteres até o máximo de 49 caracteres.

Não tem colunas em strings.

[]'s

Editado por Maurício2006

Compartilhar este post


Link para o post
Compartilhar em outros sites
andtoz.

Qual o máximo de caracteres que suas strings precisam ter?

Massita.

Se eu declarar isso daqui:

char mat_string [ 10 ] [ 50 ];

Eu estou declarando uma matriz de strings de 10 linhas x 49 caracteres (mais o terminador da string NULL, o que dá uma declaração de 50 caracteres, ou, bytes).

Cada elemento dessa matriz, ou, linha, pode ter de 0 caracteres até o máximo de 49 caracteres.

Não tem colunas em strings.

[]'s

Pessoal esse meu professor é crica,hein?Deu nó na cabeça de todos.Mas é o seguinte, tenho que criar uma tabela que guarde 20 nomes de sei lá 40 caracteres,20 cidades com 40 caracteres também e 20 estados com 40 caracteres também.Feito o armazenamento devo perguntar ao usuário qual dos 3 campos ele deseja acessar e apresentá-lo em ordem alfabética.Creio que seja isso.Agradeço a atenção de todos até o momento.Obrigado:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve, andtoz.

A declaração das suas variáveis pode ser assim:

char nome [ 20 ] [ 41 ];    // 41 elementos, pra guardar o terminador; 40 caracteres usáveis
char cidade [ 20 ] [ 41 ];
char estado [ 20 ] [ 41 ];

Pra capturar, você pode usar SCANF ou GETS:

for ( indice = 0; indice < 20; indice++ )
{
printf ("Entre com o nome, cidade e estado\n");
gets ( nome [ indice ] );
gets ( cidade [ indice ] );
gets ( estado [ indice ] );
}

Depois de capturar os dados, você pode pedir a opção de ordenação:

printf ("Escolha a ordenacao\n");
printf ("1 - Nome\n");
printf ("2 - Cidade\n");
printf ("3 - Estado\n");
getchar ( comando );

E fazer a ordenação através de um SWITCH, p. ex:

switch ( comando )
{
case 1:
// função ou comandos para ordenação pelos nomes
break;

case 2:
// função ou comandos para ordenação pelas cidades
break;

case 3:
// função ou comandos para ordenação pelos estados
break;
}

As funções/comandos de ordenação, ficam por sua conta.

É só uma ideia. Espero que ajude.

Mexer com strings é um saco! você vai precisar estudar os protótipos da biblioteca STRING.H

Lá, tem funções prontas que comparam strings.

Boa sorte.

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mauricio, declara a matriz como se fosse tridimensional... Acho que você entendeu o que eu quis fazer... =)

Compartilhar este post


Link para o post
Compartilhar em outros sites
Salve, andtoz.

A declaração das suas variáveis pode ser assim:

char nome [ 20 ] [ 41 ];    // 41 elementos, pra guardar o terminador; 40 caracteres usáveis
char cidade [ 20 ] [ 41 ];
char estado [ 20 ] [ 41 ];

Pra capturar, você pode usar SCANF ou GETS:

for ( indice = 0; indice < 20; indice++ )
{
printf ("Entre com o nome, cidade e estado\n");
gets ( nome [ indice ] );
gets ( cidade [ indice ] );
gets ( estado [ indice ] );
}

Depois de capturar os dados, você pode pedir a opção de ordenação:

printf ("Escolha a ordenacao\n");
printf ("1 - Nome\n");
printf ("2 - Cidade\n");
printf ("3 - Estado\n");
getchar ( comando );

E fazer a ordenação através de um SWITCH, p. ex:

switch ( comando )
{
case 1:
// função ou comandos para ordenação pelos nomes
break;

case 2:
// função ou comandos para ordenação pelas cidades
break;

case 3:
// função ou comandos para ordenação pelos estados
break;
}

As funções/comandos de ordenação, ficam por sua conta.

É só uma ideia. Espero que ajude.

Mexer com strings é um saco! você vai precisar estudar os protótipos da biblioteca STRING.H

Lá, tem funções prontas que comparam strings.

Boa sorte.

[]'s

valeu galera, desculpa a amolação.Vou tentar da foma que vocês me passaram.Se conseguir que ele rode postarei para vocês(kkkkkkkkkkkkkkkkkk).Abraço.:cool:

Compartilhar este post


Link para o post
Compartilhar em outros sites
Mauricio, declara a matriz como se fosse tridimensional... Acho que você entendeu o que eu quis fazer... =)

ah, tá... Realmente! Agora eu entendí o que você estava querendo dizer! :D:-BEER

Tb... Era só falar: -Faz uma matriz tridimensional! :D:D

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×