SORU
10 EKİM 2008, Cuma


C bitiştirmek string ve int

Bu çok basit olacağını düşündüm ama bazı zorluklar zararlı. Eğer kalırsam

string name = "John";
int age = 21;

Onları nasıl tek bir dize almak için bir araya mı ""? John21

CEVAP
22 Mayıs 2009, Cuma


Alfabetik olarak:

std::string name = "John"; int age = 21;
std::string result;

// 1. with Boost
result = name   boost::lexical_cast<std::string>(age).

// 2. with FastFormat.Format
fastformat::fmt(result, "{0}{1}", name, age);

// 3. with FastFormat.Write
fastformat::write(result, name, age);

// 4. with IOStreams
std::stringstream sstm;
sstm << name << age;
result = sstm.str();

// 5. with itoa
char numstr[21]; // enough to hold all numbers up to 64-bits
result = name   itoa(age, numstr, 10);

// 6. with sprintf
char numstr[21]; // enough to hold all numbers up to 64-bits
sprintf(numstr, "%d", age);
result = name   numstr;

// 7. with STLSoft's integer_to_string
char numstr[21]; // enough to hold all numbers up to 64-bits
result = name   stlsoft::integer_to_string(numstr, 21, age);

// 8. with STLSoft's winstl::int_to_string()
result = name   winstl::int_to_string(age);

// 9. With Poco NumberFormatter
result = name   Poco::NumberFormatter().format(age);
  1. güvenli, ama yavaş; gerektirir Boost (sadece) başlık; en/bütün platformlar
  2. güvenli ve hızlı; gerektirir derlenmiş olmalıdır FastFormat,; en/bütün platformlar
  3. güvenli ve hızlı; gerektirir derlenmiş olmalıdır FastFormat,; en/bütün platformlar
  4. güvenli, yavaş ve ayrıntılı; hiçbir şey gerektirir standart C ()
  5. kırılgan (yeterince büyük bir arabellek kaynağı gerekir), hızlı ve kapsamlı; itoa() standart olmayan bir uzantısı ve tüm platformlar için kullanılabilir olması garanti değil
  6. kırılgan (yeterince büyük bir arabellek kaynağı gerekir), hızlı ve kapsamlı; bir şey gerektirir. standart C (); tüm platformlar
  7. kırılgan (yeterince büyük bir arabellek kaynağı gerekir), probably the fastest-possible conversion, ayrıntılı; STLSoft gerektirir (yalnızca üstbilgi); en tüm platformlar/
  8. güvenli-ish (tek bir deyim içinde birden fazla int_to_string() çağrı kullanmayın), hızlı; STLSoft gerektirir (yalnızca üstbilgi); yalnızca Windows
  9. güvenli, ama yavaş; Poco C ;/en tüm platformlar gerektirir

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Amena

    Amena

    15 Kasım 2006
  • AyfionGaming

    AyfionGaming

    20 ŞUBAT 2013
  • Chriselle Lim

    Chriselle Li

    26 Ocak 2008