c++ std::string能否存储二进制字符以及'\0'字符?

c++的字符串类std::string能否存储二进制字符以及字符'\0'?要解决这个问题,我们首先要了解c++的std::string的存储结构。(注意不同的平台下C++规范对std::string的实现不完全一致,例如sizeof(std::string)在linux x64 gcc-4.4下的输出是8,而在mac gcc 4.2下的输出是24; 这篇文章以Linux x64 gcc Red Hat 4.4.4为运行环境。)首先检查std::string类的实例大小, 即一个std::string对象占用空间大小。#include <stdio.h> #include <string> int main(int argc, char * argv[]) { std:…

清除字符串中非字母数字字符[C++]

//http://www.cplusplus.com/forum/beginner/148876/ #include <iostream> #include <string> #include <cctype> #include <algorithm> int main() { const std::string str = "it. is? awesome!"; { // simple std::string a; for (char c : str) if (std::isalnum(c)) a += c; std::cout…