JoBlack Posted May 21, 2006 at 07:00 PM Report Share #28659 Posted May 21, 2006 at 07:00 PM Existem funções para converter inteiros em strings e vice-versa? Obrigado Link to comment Share on other sites More sharing options...
TheDark Posted May 21, 2006 at 07:18 PM Report Share #28670 Posted May 21, 2006 at 07:18 PM tens a itoa(): char numero_s[20]; itoa(3257, &numero_s, 10); //converte o numero 3257 numa string, com base 10 itoa(3257, &numero_s, 16); //converte o numero 3257 numa string, com base 16 Desaparecido. Link to comment Share on other sites More sharing options...
Gurzi Posted May 21, 2006 at 07:23 PM Report Share #28673 Posted May 21, 2006 at 07:23 PM podes por aqui a syntax da função itoa para eu perceber um pouco ? qual seria o resultado de 3257 passado a string ? Link to comment Share on other sites More sharing options...
TheDark Posted May 21, 2006 at 09:14 PM Report Share #28730 Posted May 21, 2006 at 09:14 PM está o link para a sintaxe da função no post anterior: itoa(). O resultado de itoa(3257, &numero_s, 10); seria "3257" na variável numero_s. O resultado de itoa(3257, &numero_s, 16); seria "CB9" na variável numero_s, o que corresponde a 3257 em hexadecimal. Desaparecido. Link to comment Share on other sites More sharing options...
JoBlack Posted May 21, 2006 at 09:58 PM Author Report Share #28749 Posted May 21, 2006 at 09:58 PM Ok, e, já agora, converter um inteiro numa string? Link to comment Share on other sites More sharing options...
TheDark Posted May 21, 2006 at 10:17 PM Report Share #28756 Posted May 21, 2006 at 10:17 PM Esse ainda é mais fácil: atoi() int i; char *s="3257"; i=atoi(s); Atenção que só se podem utilizar valores de base 10. E se a string passada como parâmetro por por exemplo "-1034sdd", o resultado será i = -1034. Os caracteres a seguir ao número são ignorados. Se o 1º caracter não espaço não fou um algarismo ou +/-, a função retorna 0. Desaparecido. Link to comment Share on other sites More sharing options...
JoBlack Posted May 21, 2006 at 10:29 PM Author Report Share #28762 Posted May 21, 2006 at 10:29 PM ok, obrigado, já estive a experimentar mas obtenho um erro, alguma coisa está mal no código seguinte? i=atoi(AUT.nr); ii=i+1; itoa (ii,buffer,10); AUT.nr=buffer; Basicamente, o que pretendo é no campo AUT.nr da estrutura AUT converter em inteiro, somar-lhe 1 e voltar a converter em string para colocar novamente no mesmo campo. O erro aparece na linha AUT.nr=buffer As variáveis estão todas declaradas. Link to comment Share on other sites More sharing options...
JoBlack Posted May 21, 2006 at 10:59 PM Author Report Share #28764 Posted May 21, 2006 at 10:59 PM Esqueçam, já está resolvido.... strcpy(AUT.nr,buffer) ? Link to comment Share on other sites More sharing options...
Guest id194 Posted May 21, 2006 at 11:06 PM Report Share #28769 Posted May 21, 2006 at 11:06 PM pa começar, isso tá ao contrario... o atoi() converte strings pa inteiros e não vice-versa como foi dito e o itoa() é que converte inteiros para strings. mas o itoa() não é função standard, pelo que se estiveres a trabalhar em linux no gcc ou até mesmo no dev-cpp no windows (k suponho que seja igual visto usar uma port do gcc po windows) não vai funcionar, porque tanto quanto eu sei, o itoa, está no conio.h, biblioteca essa que é da borland e não é standard. para converter inteiros para strings (ainda hoje um amigo me perguntou sobre isso), têm esta possiblidade: int n = 5; char buffer[10]; sprintf(buffer, "%i", n); Link to comment Share on other sites More sharing options...
Guest id194 Posted May 21, 2006 at 11:07 PM Report Share #28770 Posted May 21, 2006 at 11:07 PM o strcpy() não te converte inteiros/strings (ou vice-versa), se dizes que tá resolvido, então a tua dúvida não era própriamente essa... Link to comment Share on other sites More sharing options...
TheDark Posted May 21, 2006 at 11:41 PM Report Share #28779 Posted May 21, 2006 at 11:41 PM mas o itoa() não é função standard, pelo que se estiveres a trabalhar em linux no gcc ou até mesmo no dev-cpp no windows (k suponho que seja igual visto usar uma port do gcc po windows) não vai funcionar, porque tanto quanto eu sei, o itoa, está no conio.h, biblioteca essa que é da borland e não é standard. Ambas as funções estão na biblioteca stdlib.h, como é dito nos links que postei. Mais standard que a biblioteca standard torna-se complicado 😄 para converter inteiros para strings (ainda hoje um amigo me perguntou sobre isso), têm esta possiblidade: int n = 5; char buffer[10]; sprintf(buffer, "%i", n); A sprintf é menos eficiente que a itoa, porque tem que interpretar a string do 2º parâmetro. o strcpy() não te converte inteiros/strings (ou vice-versa), se dizes que tá resolvido, então a tua dúvida não era própriamente essa... Ele só substituiu a linha AUT.nr=buffer; por strcpy(AUT.nr,buffer); Desaparecido. Link to comment Share on other sites More sharing options...
Guest id194 Posted May 22, 2006 at 12:01 AM Report Share #28785 Posted May 22, 2006 at 12:01 AM então, só para aprenderes a ler aquilo que postas(não leves a mal, estou a dizer isto na brincadeira), vais ver que no link que postaste do itoa(), encontras o seguinte: Portability. Not defined in ANSI-C. Supported by some compilers. 😄 quanto ao strcpy(), não tinha reparado, porque apenas liguei ao assunto do topico e não ao codigo todo e ao que ele tinha feito. Link to comment Share on other sites More sharing options...
TheDark Posted May 22, 2006 at 12:04 AM Report Share #28787 Posted May 22, 2006 at 12:04 AM Oraaaa... eu não disse que pertencia à especificação ANSI-C, disse que pertencia à biblioteca standard do C -> stdlib.h 😄 NOTA é só para confirmar que o gcc do cygwin traz a biblioteca stdlib.h Desaparecido. Link to comment Share on other sites More sharing options...
Guest id194 Posted May 22, 2006 at 01:03 AM Report Share #28793 Posted May 22, 2006 at 01:03 AM mas eu tava a referir-me a essa, apesar de n a ter especificado, mas pensei que tivessem percebido o que quis dizer quando falei em standard, que me estava a referir ao ansi-c... mas não ha crise, chega de off-topics 😄 Link to comment Share on other sites More sharing options...
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