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

Dúvida - Atribuir Vários Caracters em C


Douglas Selvati

Pergunta

Estou com dificuldade em dar vários valores para uma variável vetor do tipo caracter, sendo que preciso digitar os valores na mesma linha, separando-os por "," (virgula), e ultilizar "." (ponto) para finalizar a sequencia de caracter.

Ex.

1ª 2ª 3ª

M. Souza, A. Selberg, A. Oliveira.

As variáveis 1ª, 2ª e 3ª recebem caracter sendo que cada um recebe um "espaço" entre abreviação do primeiro nome e o sobrenome.

As virgulas separam cada caracter, sendo se continuasse a digitar nomes e virgulas ainda teria mais variáveis.

O Ponto final define o termino das variáveis.

Queria sabe se alguém me da uma dica para resolver essa pequena parte de um algoritmo?

Número de Erdos

http://olimpiada.ic.unicamp.br/pratique/pr...ao/nivel2/erdos

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

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

#define COMPRIMENTO_STRING 100
#define NUMERO_VARIAVEIS 20

//Protótipo das funções

void limpaStringUni(char *);

void limpaStringMulti(char stringLimpar[][COMPRIMENTO_STRING]);



//Início do programa
int main(){

    char string[COMPRIMENTO_STRING];
    char palavra[COMPRIMENTO_STRING];
    char variaveis[NUMERO_VARIAVEIS][COMPRIMENTO_STRING];

    int i = 0;
    int j = 0;
    int k = 0;


    int tamanho = 0;

    limpaStringUni(string);
    limpaStringUni(palavra);
    limpaStringMulti(variaveis);

    printf("\nDigite a entrada de dados: ");
    fgets(string,(COMPRIMENTO_STRING-1),stdin);

    tamanho = strlen(string);

    for(i=0;i<tamanho;i++){
        if (string[i] != 44){
            palavra[k] = string[i];
            k++;
        }else if (string[i] == 44){
            sprintf(variaveis[j], "%s", palavra);
            limpaStringUni(palavra);
            j++;
            k = 0;
        }
        sprintf(variaveis[j], "%s", palavra); //Grava a última palavra no vetor
    }

    printf("\n\n");

    for(i=0;i<=j;i++){
        printf("%s\n",variaveis[i]);
    }

    return(0);

}

//Limpa uma string unidimencional
void limpaStringUni(char *stringLimpar){

    int i;

    for(i=0;i<COMPRIMENTO_STRING;i++){
        stringLimpar[i] = '';
    }

    return;
}

//Limpa uma string multidimencional
void limpaStringMulti(char stringLimpar[][COMPRIMENTO_STRING]){

    int i,j;

    for(i=0;i<NUMERO_VARIAVEIS;i++){
        for(j=0;j<COMPRIMENTO_STRING;j++){
            stringLimpar[i][j] = '';
        }
    }

    return;
}

Acredito que esse código resolva seu problema!

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...