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

Char para inteiro


Josefran

Pergunta

Galera tou com seguinte problema quero que o usuario entre com uma lista de numeros tipo 18 20 12 15 16 2 1 01 14 85 e quero armazenar esses numeros em uma lista encadeada, mas não consigo passar para inteiro estou usando o seguinte metodo para armazenar mas mesmo assim não funciona no modo debug ele nem ao menos passa do primeiro if.

/*int i, k=-1; Dados que se precisa saber
float m , z;  Dados que se precisa saber
 adiciona o item a uma lista encadeada addlista()  */
for(i=0; i<80; i++){
              if(s[i]==' '){
                         if(i == j)
                              continue;
                         x = i-j+1;
                         for(z=x; z>=0; z--){
                                  m = m + pow( 10, z) * s[i];
                                  
                         };
                         if(k==-1){
                                   r = m;
                                   continue;
                                   };
              
                         addlista(m);
                         j = i;
                         while(s[j]==' '){
                                       j++;
                         };
              };
     };

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Cara tb to começando a aprender mas, cadê a declaração das variaveis?

e " ; " depois das " {} " não é so no caso de se usar estruturas?

Galera tou com seguinte problema quero que o usuario entre com uma lista de numeros tipo 18 20 12 15 16 2 1 01 14 85 e quero armazenar esses numeros em uma lista encadeada, mas não consigo passar para inteiro estou usando o seguinte metodo para armazenar mas mesmo assim não funciona no modo debug ele nem ao menos passa do primeiro if.

/*int i, k=-1; Dados que se precisa saber
float m , z;  Dados que se precisa saber
 adiciona o item a uma lista encadeada addlista()  */
for(i=0; i<80; i++){
              if(s[i]==' '){
                         if(i == j)
                              continue;
                         x = i-j+1;
                         for(z=x; z>=0; z--){
                                  m = m + pow( 10, z) * s[i];
                                  
                         };
                         if(k==-1){
                                   r = m;
                                   continue;
                                   };
              
                         addlista(m);
                         j = i;
                         while(s[j]==' '){
                                       j++;
                         };
              };
     };

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

  • 0

mas ta compilando?? e o q era pra fazer o primero if?? da uma olhada:

if(s[i]==' '){

ele so vai entra no if se um dos caracteres de dentro do array (q imagino q seja um array de char) for igual a espaco (tecla barra de espcao do teclado). se não tiver nenhum ele não entra mesmo.

o q você queria fazer com esse if??

Link para o comentário
Compartilhar em outros sites

  • 0

void lerCadeia(char *szString, void (*callback)(int)) {
    char *pCadeia;

    pCadeia = strtok(szString, " ");
    
    while(pCadeia != NULL) {
        (*callback)(atoi(pCadeia));
        pCadeia = strtok(NULL, " ");
    }
}
Escrevi esta função rapidamente aqui pois tenho que sair. Ela requere o stdlib.h e o string.h. Use-a assim: O primeiro argumento é o que você recebe do usuário. (exemplo: 80 32 10 45) O segundo é uma função (no modo void nome(int arg)), que vai ser chamada a cada elemento encontrado na string. Exemplo de execução:
/* As "regras" do C não são cumpridas aqui, então este código não vai rodar em um compilador, é só para ilustração */
String = "50 30 32";

lerCadeia(String, funcao);

/* O que o lerCadeia vai fazer é: */
funcao(50);
funcao(30);
funcao(32);

Logo se você precisar fazer algum cálculo com o valor antes, escreva uma função que receba um valor int, manipule-o e então adicione-o a lista.

Lembre-se: para passar a função como argumento, é só o nome dela. (exemplo: void funcao(int x); lerCadeia(string, funcao); )

Abraços.

Editado por Durub
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...