stdstring相关内容
我有一些可以封装现有C ++库的Objective-C ++. C ++库有时会为我提供要转换为nonnull NSString s的std::string&参数.除了-initWithCharactersNoCopy:length:freeWhenDone:和-initWithCharacters:length:,几乎所有NSString初始化程序都返回nullable NSString.但是,
..
嗨,我正在尝试将标准std::string转换为NSString,但是运气不高. 我可以使用以下代码成功地将NSString转换为std::string NSString *realm = @"Hollywood"; std::string REALM = [realm cStringUsingEncoding:[NSString defaultCStringEncoding]];
..
对于Microsoft Windows平台,我试图将我的代码从使用MFC的CString移植到std::string.我很好奇.在以下示例中进行说明: CString MakeLowerString(LPCTSTR pStr) { CString strLower = pStr ? pStr : L""; CharLower(strLower.GetBuffer());
..
在MFC中使用C ++.来自C#背景,我通常只将字符串用于所有字符串.我将它们用于类成员,方法参数和方法返回值. 现在在C ++中,我有std :: string,CString,char *,LPCTSTR等.在设计数据成员,方法参数和方法返回值时,应使用哪种类型?易用性很重要,CString似乎提供了这一点,但是我的直觉是对可移植标准的,尽管可移植性在我的优先级列表中(现在)还很低.另外
..
我不明白当文本大小相等时指针如何相同.似乎firstStringObj :: c_str()覆盖了前一个指针. #include #include #include #include std::string getConstCharAndModifyItWithANewString( const char* co
..
我需要在std :: string对象中使用已经分配的char *缓冲区(带有字符串内容).经过一番研究,我发现这几乎是不可能的,并且std :: string总是具有自己的数据私有副本.我能想到的唯一剩下的方法是使用自定义分配器,该分配器将返回已分配的char缓冲区的地址.为此,std :: string应该仅使用分配器分配内存来保存其字符串数据,而别无其他.是这样吗 解决方案 std:
..
我发现自己在下面使用这种类型的代码来防止内存泄漏,在性能,安全性,样式或...方面有什么问题吗? 这个想法是,如果我需要返回一个编辑过的字符串(用c字符串而不是std :: string),我会使用一个临时的std :: string作为助手,并将其设置为我想要的返回值并保持那个暂时的生命. 下次我调用该函数时,它将临时值重新设置为我想要的新值.而且由于我使用返回的c字符串的方式,所以
..
int main(void) { std::string foo("foo"); } 我的理解是,上面的代码使用默认的分配器来调用new.因此,即使std :: string foo分配在堆栈上,foo内部的内部缓冲区也分配在堆上. 如何创建一个完全在堆栈上分配的字符串? 解决方案 我最近想自己做一下,发现下面的代码可以说明问题: Chronium的stack_con
..
假设我需要调用函数foo,该函数需要在代码中的很多地方获取const std::string引用: int foo(const std::string&); .. foo("bar"); .. foo("baz"); 使用这样的字符串文字调用函数将创建临时的std::string对象,每次都复制文字. 除非我弄错了,否则编译器不会通过为每个文字创建一个静态的std::string对
..
我正在使用一个包装std :: wstring的类,该代码需要跨平台,是否与Windows函数等效:MultiByteToWideChar& Linux上的WideCharToMultiByte? 谢谢. 解决方案 Linux等效项是iconv函数
..
考虑以下代码: #include #include int bar() { std::pair p { 123, "Hey... no small-string optimization for me please!" }; return p.first; } (感谢@ Jaro
..
我正在尝试使用std :: string作为std :: map中的键,但是,我无法正确找到().我的代码有些复杂而且很大,所以这是一个小程序,演示了我遇到的问题.如果有人能告诉我为什么这行不通,我将非常感激. 谢谢. #include #include #include struct comparer { public:
..
我认为这很简单,但它会带来一些困难。如果我有 std :: string name =“John”; int age = 21; 如何组合它们以获得单个字符串“John21”? 解决方案 按字母顺序排列: std :: string name =“John”; int age = 21; std :: string result; /
..
我需要一个如何使用Crypto ++从std :: string生成SHA256哈希并输出std :: string的示例。我似乎无法弄清楚。我试过的所有东西都给了我无效的输出。 以下是interjay回答后的新代码: string SHA256(string data) { byte const * pbData =(byte *)data.data(); unsigned
..
试图使用std :: string有很大的困难。该程序编译绝对好,但是当我运行该程序时,我收到此错误:错误 我在Google上到处寻找,并没有发现如何解决这个问题。我也尝试写我的代码不同,看看是否会告诉我什么。 std :: string yourName; std :: cout>你的名字; std :: cout
..
我仍然试图决定我的(家庭)项目是否应该使用 UTF-8 字符串(在必要时使用附加的UTF-8特定功能的std :: string实现)或一些16位字符串(实现为std :: wstring)。该项目是一种编程语言和环境(如VB,它是两者的组合)。 有一些愿望/约束: 如果可以在有限的硬件上运行,例如内存有限的计算机,这将是很酷的。 我希望代码运行在Windows,Mac和(如果资源允
..
我一直在试图调试崩溃在我的应用程序崩溃(即断言 * glibc检测到* free():无效指针:0x000000000070f0c0 ***) m试图做一个简单的分配到一个字符串。注意,我在一个linux系统上编译gcc 4.2.4,优化级别设置为-O2。使用-O0时,应用程序不再崩溃。 例如 std :: string abc; abc =“testString”;
..
使用构造函数将 char * 转换为 std :: string 时: char * ps =“Hello”; std :: string str(ps); 我知道std容器在被要求存储时往往会复制值。 是复制整个字符串还是仅指针? 如果后来我做 str =“Bye”会把ps改成指向“Bye”吗? c>对象将分配内部缓冲区并将复制 ps指向的字符串。对该字
..
我想在Visual C ++环境中将std :: string转换为System :: String ^。我知道我们可以通过 MarshalString 函数将System :: String转换为std :: string: void MarshalString(String ^ s,string& os){ using namespace Runtime :: InteropServ
..
我发现这个很好的代码,将字符串转换为 System:String ^ 如: System :: String ^ rtn = gcnew String(move.c_str()); //'move'这里是字符串 我将rtn传递回C#程序。无论如何,在这个代码存在的函数内部,我传递一个 System :: String ^ 。我还发现一些代码使用以下代码将 System:St
..