CString非常方便,而std::string与STL容器更兼容。 我正在使用hash_map 。 但是, hash_map不支持CString作为键,所以我想将CString转换为std::string 。 编写一个CString哈希函数似乎花费了很多时间。 CString —–> std::string 我怎样才能做到这一点? std::string —–> CString: inline CString toCString(std::string const& str) { return CString(str.c_str()); } 我对吗? 编辑: 这里有更多的问题: 我怎样才能将wstring , CString转换为对方? //wstring -> CString, std::wstring src; CString result(src.c_str()); //CString->wstring. CString src; ::std::wstring des(src.GetString()); 有什么问题吗? 如何将std::wstring , std::string转换为对方?
我注意到,在我的SGI STL参考副本中,有一个关于angular色特征的页面,但我看不到这些是如何使用的? 他们是否replacestring.h函数? 它们似乎不被std::string ,例如std::string的length()方法不使用Character Traits的length()方法。 为什么angular色特质存在,他们曾经在实践中使用?
嗨,我试图将一个标准的std::string转换成一个NSString但我没有太多的运气。 我可以使用下面的代码从NSString成功转换为std::string NSString *realm = @"Hollywood"; std::string REALM = [realm cStringUsingEncoding:[NSString defaultCStringEncoding]]; 但是,当我尝试以下时,我得到一个编译时错误 NSString *errorMessage = [NSString stringWithCString:REALM encoding:[NSString defaultCStringEncoding]]; 我得到的错误是 Cannot convert 'std::string' to 'const char*' in argument passing 我在这里错过了什么? 提前致谢。
问题:我有一个整数; 这个整数需要转换成stl :: stringtypes。 在过去,我已经使用了stringstream进行转换,这只是一种麻烦。 我知道C的方式是做一个sprintf ,但我宁愿做一个C ++的方法是types安全(呃)。 有一个更好的方法吗? 以下是我过去使用的stringstream方法: std::string intToString(int i) { std::stringstream ss; std::string s; ss << i; s = ss.str(); return s; } 当然,这可以被重写为: template<class T> std::string t_to_string(T i) { std::stringstream ss; std::string s; ss << i; s = ss.str(); return s; } 但是,我认为这是一个相当“重量级”的实现。 赞指出,调用是相当不错,但是: std::string s = t_to_string(my_integer); 无论如何,更好的方法是…好。 有关: […]
我知道这是一个普遍的问题,但寻找参考和其他材料,我没有find明确的答案这个问题。 考虑下面的代码: #include <string> // … // in a method std::string a = "Hello "; std::string b = "World"; std::string c = a + b; 编译器告诉我它找不到一个重载操作符char[dim] 。 这是否意味着在string中没有+运算符? 但在几个例子中就有这样的情况。 如果这不是连接更多string的正确方法,那么最好的方法是什么?
int i = 4; string text = "Player "; cout << (text + i); 我想要它打印Player 4 。 以上显然是错误的,但它显示了我想在这里做什么。 有没有一个简单的方法来做到这一点,或者我必须开始添加新的包括?
我想知道是否有一个替代itoa()将整数转换为string,因为当我在Visual Studio中运行它,我得到警告,并且当我尝试在Linux下构build我的程序时,我得到一个编译错误。
我需要使用std::string来存储由fgets()检索的数据。 为此,我需要将fgets() char*输出转换为一个std::string来存储在一个数组中。 如何才能做到这一点?
用std::string另一个字符replace所有出现的字符的有效方法是什么?
当使用gcc 4与-std=c++0x或-std=c++11时, std::string引用被计数吗?