+ Responder ao Tópico



  1. Olha, so eu estou com um probleminha, e o seguinte, tenho um programa que faz uns calculos baseados em uma string. certo. entretanto surge um problema. para os calculos serem efetuados ele prescisar ser um numero inteiro ou ponto flutuante.

    entao eu tenho um string mais ou menos asim.
    // no programa original o user passa a string.

    char *str[] = "256781";

    eu presciso de todos esses digitos separadamente e o ultimo tambem.

    entao eu tenho usado.

    dv = atoi(str[5]);
    so que isso da erro, segment fault, rodei o gdb e ele mostra erro na stroul_internal , que eh responsavel pela conversao.

    quando eu utilizo somente.

    dv = atoi(str);

    o dv recebe a string toda, como inteiro, funciona perfeito, mas eu nao quer o isso. resolvendo esse problema eu faco os outros calculos necessarios.

    em suma o problema eh esse. eu presciso resolver esse problema antes das 18:50 que eh o horario que a aula comeca, entao se voces puderem mandar o maximo de sugestoes possiveis eu agradeco, se passar das 7h nao da pois a aula jah comecou.

    obrigado,


  2. #2
    modesto
    faça um laço convertendo a string para ascII, depois voce retira os numeros desejados acessando o indice que vc ker.

    Exemplo:

    char str[]="2,3,4,5";
    int matriz[];

    for(i=0;i<(strlen(str));i++)
    matriz[i]=str[i];

    e ai eh soh puxar o indici da matriz "matriz[]" para uma variavel;

    modesto



  3. faça na mão .... toda caracter tem seu código ascii....
    faça o seguinte...

    digamos q vc tenha um vetorl inteiro b.

    char str[7];
    int b[6];

    scanf("%s", str);

    //digamos q a pessoa tenha digitado 256781

    //codigo ascii de "0" = 48
    //então 48 valor asciii - 48 int = 0 int
    //codigo ascii do char "1" = 49
    // 49 - 48 = 1 int

    b[0] = str[0] - 48;
    b[1] = str[1] - 48;
    b[2] = str[2] - 48;
    b[3] = str[3] - 48;
    b[4] = str[4] - 48;

    cada posição do vetor b terá o valor inteiro correpondesnte ao caracter...

  4. se vc quiser transformar o vetor b num número só igual a string digitada é simples...

    w = 0;
    a = 100000;
    for(x = 0; x < 5; x++){
    w = w + b[x] * a;
    a = a / 10;
    }

    /*
    200000
    +50000
    + 6000
    + 700
    + 80
    + 1
    ---------
    256781
    */






Tópicos Similares

  1. HOW-TO DNS RedHat 8
    Por ATNunes no fórum Servidores de Rede
    Respostas: 6
    Último Post: 27-12-2002, 21:01
  2. Tô pirando!!!!!
    Por Futuremax no fórum Servidores de Rede
    Respostas: 3
    Último Post: 27-12-2002, 10:10
  3. IPSEC- lan to lan
    Por Maiko no fórum Servidores de Rede
    Respostas: 2
    Último Post: 04-12-2002, 08:15
  4. Tô precisando, logs SQUID!!
    Por Futuremax no fórum Servidores de Rede
    Respostas: 6
    Último Post: 29-11-2002, 13:44
  5. Bridge, How to ?
    Por Celio no fórum Servidores de Rede
    Respostas: 0
    Último Post: 31-08-2002, 21:11

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L