1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Separar string em C

Discussão em 'Programação' iniciada por c4l1m3r0, 29 de Janeiro de 2008. (Respostas: 3; Visualizações: 1237)

  1. c4l1m3r0

    c4l1m3r0 Power Member

    Ora viva techzonianos! Estou agora a fazer o projecto final de programação em C para o meu curso no tecnico e já o tenho quase totalmente acabado. Excepto um erro que está a dar cabo de tudo, embora o resto pareca estar a funcionar bem. Após 4 horas à procura dele, descobri que não estou a conseguir passar correctamente a string que é colocada pelo utilizador para uma matriz de elementos que só podem ser 1 ou 0.
    O projecto no seu todo é para imitar o Jogo da Vida, um autómato celular, em que basicamente as celulas duma matriz morrem (0=morte) ou vivem (1=vida).
    Por questão de pratica (e tambem porque montei uma GUI toda bonita :joker:), convem que o input seja feito algo no genero:

    1111111111100000000000001111111
    1111110000000000111111110000000
    ... etc.

    Portanto, a string é gravada com o input do utilizador, depois é convertida, caracter a caracter, para integer. Estava a usar simplesmente uma coisa neste genero:

    x[j]=atoi(&linha[j]);

    Já tentei resolver o problema de varias maneiras, mas não consigo chegar la.
    Alguma sugestão? :001:
     
  2. Baderous

    Baderous Banido



    linha[j] contém uma string?
    Se não, não podes fazer isso (usar atoi num char). atoi aplica-se a uma string. Para o que tu queres, podes usar a tabela ASCII.
    Para obteres o int correspondente ao char, basta subtrair '0' ao char.
    Ex: Passar de '1' -> 1
    '1' = 49
    '0' = 48

    '1' - '0' = 49-48 = 1

    O mesmo se aplica ao zero: '0' - '0' = 0
     
  3. c4l1m3r0

    c4l1m3r0 Power Member

    Pois eu tambem pensava isso, fui enganado por um tutorial (devo ter lido mal, provavelmente) que li que dizia que o & permitia ler o caracter apenas. Hoje é que descobri que o que faz é ler a string a partir dai.

    Mas essa da tabela ASCII parece que faz o trabalho, muitissimo obrigado Baderous!
     
  4. Baderous

    Baderous Banido

Partilhar esta Página