Avatar billede Swift Praktikant
11. september 2003 - 13:54 Der er 8 kommentarer og
1 løsning

itoa alternativ på linux

Jeg kan ikke finden nogen itoa på min Redhat maskine.

Hvad er alternativet for at få oversat integers til char* ?
Det skal være pænt C++, ikke noget gammelt C hejs!

Jeg vil fx gerne let kunne gøre noget i denne stil:
int skummeltTal = 27;
char* tekstStreng = new char[100];
strcpy( tekstStreng, "Hey nu kan jeg få tallet " );
strcat( tekstStreng, skummeltTal );    //her skal selvfølgelig foregå en konvertering!
strcat( tekstStreng, " kopieret sammen med en streng!" );
Avatar billede arne_v Ekspert
11. september 2003 - 14:07 #1
Lang det pæneste efter min mening er:

int skummeltTal = 27;
char* tekstStreng = new char[100];
sprintf(tekstStreng, "Hey nu kan jeg få tallet %d kopieret sammen med en streng!", skummeltTal);
Avatar billede arne_v Ekspert
11. september 2003 - 14:08 #2
Men indrømmet det virker også i C.

:-)
Avatar billede Swift Praktikant
11. september 2003 - 14:31 #3
Hmmm....det ville nu være bedre med noget C++ teknik.
Er der andre gode forslag?
Avatar billede soreno Praktikant
11. september 2003 - 14:46 #4
Dur atoi ikke når du includer stdlib.h ?
Avatar billede soreno Praktikant
11. september 2003 - 14:46 #5
Glem det, jeg kiggede på den forkerte :-)
Avatar billede erikjacobsen Ekspert
11. september 2003 - 14:53 #6
Så længe du bruger char* kan du li'så godt bruge itoa. Ellers bliv inspireret af

#include <sstream>

template<typename T>
std::string typeToString(const T& val)
{
  std::ostringstream oss;
  oss << val;
  return oss.str();
}

int main()
{
  std::string s = typeToString(123);
  // now you have the string s which contains: "123",
    // and you can reverse it.
  return 0;
}
Avatar billede arne_v Ekspert
11. september 2003 - 15:36 #7
Den samme kode i C++ vil se ud som:

  int skummeltTal = 27;
  char *tekstStreng = new char[100];
  ostringstream oss;
  oss << "Hey nu kan jeg få tallet " << skummeltTal << " kopieret sammen med en streng!";
  strcpy(tekstStreng, oss.str().c_str());

Det synes jeg er betydeligt grimmere !
Avatar billede Swift Praktikant
11. september 2003 - 20:05 #8
erikjacobsen: Jammen hvordan får man liv i itoa på Redhat ??
Jeg har ikke kunnet få gang i den!
Avatar billede arne_v Ekspert
11. september 2003 - 20:53 #9
Hvis den er der skal den være i stdlib.h eller cstdlib.

Men jeg kan heller ikke finde den på min RedHat.

Den behøver ikke være der fordi det er ikek en ANSI standard funktion.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester