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

Matrizes de Strings - Linguagem C


Bruno Pacheco

Pergunta

O meu programa não está imprimindo as strings da forma correta queria saber qual seria a solução do problema?

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


int main(){
    char strings[5][25],aux[5][30];
    int count,count2;



    printf("\n\nDigite uma string:");
    gets(strings[count]);

    for(count=0;count<5;count++){
        for (count2=count+1;count2<5;count2++){
            if (strcmp(strings[count],strings[count2])>0{
              strcpy(aux,strings[count]);
               strcpy(strings[count],strings[count2]);
               strcpy(strings[count2],aux);
            }
        }
    }


                
        

    printf("\nAs strings digitadas foram:\n");
    for(count=0;count<5;count++)
        printf("%s\n",strings[count]);
system("Pause");
}

Editado por Bruno Pacheco
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Desculpe eu postei o código errado o código certo é este:

O meu compilador está apontando o erro para estas linhas do código:

linha 16 ->"if (strcmp (strings[count],strings[count2]))>0"

O que faço para fazer o meu código compilar normal?

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


int main(){
    char strings[5][25],aux[5][30];
    int count,count2;



    printf("\n\nDigite uma string:");
    gets(strings[count]);

    for(count=0;count<5;count++){
        for (count2=count+1;count2<5;count2++){
            if (strcmp(strings[count],strings[count2])>0{
              strcpy(aux,strings[count]);
               strcpy(strings[count],strings[count2]);
               strcpy(strings[count2],aux);
            }
        }
    }


            
        

    printf("\nAs strings digitadas foram:\n");
    for(count=0;count<5;count++)
        printf("%s\n",strings[count]);
system("Pause");
}

Editado por Bruno Pacheco
Link para o comentário
Compartilhar em outros sites

  • 0

Tem alguns erros nesse seu código novo.

//// Troca esse 
if (strcmp(strings[count],strings[count2])>0  <= Faltou um parentese no final
//// Por esse
if (strcmp(strings[count],strings[count2])>0)
A função strcpy copia arrays e não matrizes, por isso você deve declarar "aux" assim: char aux[30]; Pelo que me lembro, a pessoa entra com 5 strings. Mas pelo seu código só vai entrar com um só. Então teria que acrescentar um for:
for(cont = 0; cont < 5; cont++)
{
    printf("\n\nDigite uma string:");
    gets(strings[count]);
}

Você editou seu primeiro post e não sei mais o que seu programa deve fazer. Esse seu código agora tá meio confuso.

Cadê o código que você postou inicialmente? Ele funcionou certinho aqui.

Qualquer coisa retorna. Abraço.

Link para o comentário
Compartilhar em outros sites

  • 0

Eu postei errado agora eu postei o código que eu queria. Esse código já está compilando normal e na verdade ele coloca os nomes que a pessoa digitar em ordem alfabética. Mas voce pode me dizer melhor porque a função strcpy só aceita "aux" como declaração e não "aux"?

Editado por Bruno Pacheco
Link para o comentário
Compartilhar em outros sites

  • 0

Porque o protótipo da função é essa:

char * strcpy ( char * destino, const char * origem )

Ela foi feita pra copiar uma string para outra, e não matrizes.

Agora achei nesse tópico http://scriptbrasil.com.br/forum/index.php...61&hl=qsort um post seu com a mesma dúvida. Você testou o código que o Durub postou?

Testa ai pra ver se funciona e posta o resultado. Abraço.

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...