SORU
2 EKİM 2008, PERŞEMBE


Nasıl bir std inşa musun::gömülü bir boş dize?

Eğer bir std inşa etmek istersem::bir satır ile dize gibi:

std::string my_string("a\0b");

Sonuç dizesi (bir, boş, b) üç karakter sahibi olmak istiyorum nerede, ben sadece bir tane var. Doğru sözdizimi nedir?

CEVAP
2 EKİM 2008, PERŞEMBE


Sorun std::string bir kurucu alırinş char*varsayar giriş C bir dize. C dizeleri '\0 sona ulaştığında durur ve böylece ayrıştırma '\0' karakteri.'

Bunu telafi etmek için char dizisi (C-String) dize oluşturur yapıcı kullanmanız gerekir. Bu bir işaretçi dizi ve uzunluğu: iki parametre alır

std::string   x("pq\0rs");   // Two characters because input assumed to be C-String
std::string   x("pq\0rs",5); // 5 Characters as the input is now a char array with 5 characters.

Not: C std::stringDEĞİL'0 \' diğer mesajlarda önerildiği gibi) sonlandırıldı. C-String yöntemi ile c_str içeren bir iç arabellek için bir işaretçi elde edebilirsiniz.

Ayrıca Doug .T aşağıda bir kullanma hakkında kontrol edinvektör<char>

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • aki6336

    aki6336

    14 AĞUSTOS 2008
  • BumbleDroid

    BumbleDroid

    18 EKİM 2010
  • Jimmie Jones

    Jimmie Jones

    16 Kasım 2007