Jump to content
Fórum Script Brasil
  • 0

Dúvida - Atribuir Vários Caracters em C


Douglas Selvati
 Share

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.5k
×
×
  • Create New...