NovataC Posted April 18, 2009 at 06:52 PM Report #257540 Posted April 18, 2009 at 06:52 PM Bom, a ideia é ter uma string do tipo ” 23,4,5,5,67, “ e por cada valor entre virgulas coloca-lo numa posição de um vector de inteiros (int*v). Neste caso seria v[0]=23 , v[1]=4 e assim sucessivamente. O meu programa funciona apenas para numeros de um digito e não o consigo corrigir. void processaLinhaClassificacoesD(char *classificacoesD) // classificacoesD é a string denumeros inteiros separados por virgulas { int percentagens[MAX_CLASSIF]; //o vector percentagens é para onde quero ler os números da string int pos=0; //pos designa cada posição do vector percentagens int posClassificacoes=0;// posClassificacoes designa cada posição de classificacoesD contaPosicoes( classificacoesD); //a função contaPosicoes funciona perfeitamente int numeroPosicoes=contaPosicoes( classificacoesD); while (posClassificacoes<=numeroPosicoes-1) { if(classificacoesD[posClassificacoes]!=',') { percentagens[pos]=classificacoesD[posClassificacoes]; posClassificacoes++; } else { pos++;// é suposto esta variável ser actualizada quando é detectada uma virgula, até lá várias posições de classificacoesD devem ser lidas para uma só posicao de percentagens posClassificacoes++; } } }
Baderous Posted April 18, 2009 at 07:04 PM Report #257544 Posted April 18, 2009 at 07:04 PM Podes usar a função strtok para ires retirando os tokens da string, que vão corresponder aos vários números. Vê neste exemplo: http://www.cplusplus.com/reference/clibrary/cstring/strtok/ Não te esqueças de usar a função atoi para converteres as strings sucessivas que representam os números em inteiros.
joana Posted April 19, 2009 at 07:59 PM Report #257681 Posted April 19, 2009 at 07:59 PM O meu programa funciona apenas para numeros de um digito e não o consigo corrigir. Podes usar a função strtok para ires retirando os tokens da string, que vão corresponder aos vários números. Vê neste exemplo: http://www.cplusplus.com/reference/clibrary/cstring/strtok/ Não te esqueças de usar a função atoi para converteres as strings sucessivas que representam os números em inteiros. ou: percentagens[pos]=percentagens[pos]*10+atoi(classificacoesD[posClassificãcoes]); Acho eu (não testei)
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now