Jump to content

Recommended Posts

Posted (edited)

Boa noite.

Estou a fazer um trabalho em C e uma das funções auxiliares que preciso de implementar tem de pegar numa string e quando encontrar o primeiro numero converte-lo para inteiro.

Passo a exemplificar:

str1 = "abcdef235ghijkl" neste caso tem de dar o valor inteiro 235

str2 = "ab1234567890cdef" neste caso tem de dar o valor inteiro 1234567890

De notar que não sei nada sobre a string, ela é apenas passada por argumento na função, mais especificamente, não sei a quantidade de numeros que contém.

Quem poder ajudar agradeço.

Obrigado.

Edited by Joao Miguel
Posted

Podes usar o sscanf() como sugerido pelo Hippo, ou ir calculando o número caracter-a-caracter

basicamente:

arranjas um ponteiro para o primeiro caracter da string

enquanto o ponteiro nao apontar para um digito ou '\0', avança o ponteiro

enquanto o ponteiro apontar para um digito actualiza numero e avança o ponteiro

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Posted

Boas.

Venho apenas dizer que resultou com o sscanf na perfeição. Não sabia que o sscanf assim que encontra-se um numero, passava para um único inteiro esse numero e as ocorrências sucessivas de números até deixar de encontrar um numero.

Obrigado.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.