Boost logo

Boost Users :

From: Lynn Allan (l_d_allan_at_[hidden])
Date: 2006-04-08 11:49:08


Sorry if this is off-topic.

Just wanted to check .... are std::string's defined to be null terminated?

I came across a web page that indicated they are, but you can find lots of misinformation on the web.
http://www.codeproject.com/string/cppstringguide2.asp

std::string's seem to be null terminated with the Microsoft vc7.1 and vc8 compiler, but I wanted to check if this is generally true according to the C++ standard.

I'm relatively new to stl and using std::string .... mostly have used C strings and MFC CStrings (which changed from vc6 to vc7.1?)

std::string strA = "ABC";
std::string strB = "DEF";
std::string strC = "GHI";
std::string strD = "JKL";
std::string strE = "MNO";
// Check if std::string's are null terminated
const char* pTest = strC.c_str();
for (int i = 0; i < 80; ++i) {
   printf("I: %2d ch:%3d %c\n", i, pTest[i], pTest[i]);
}
std::string testStrings[] = { "abc", "def", "ghi", "jkl" };
const char* p = testStrings[1].c_str();
printf("\n********************\n");
for (int i = 0; i < 80; ++i) {
   printf("I: %2d ch:%3d %c\n", i, p[i], p[i]);
}
printf("\n********************\n");

TIA,



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net