首页 > TAG信息列表 > stdstring

C++ stdstring类型

string和vector是c++两种重要的标准库类型。前者是可变长度字符串,后者表示可变长度的集合。使用类型string必须包含string头文件。同样作标准库的一部分,string定义在命名空间std中。 #include <string> // 引入string的头文件 using std::string; 1. string的定义和初始化

c-可以在没有#include的情况下使用std :: string吗?

这个问题已经在这里有了答案:            >            Why does omission of “#include <string>” only sometimes cause compilation failures?                                    6个 这是我的代码: #include <

c-过程入口点_ZNSt7_cxx1112basic_stringlcSt11char_traitslcESalcEEC1Ev不在动态链接库中

我在尝试使用std :: string时遇到巨大困难.该程序完全可以编译,但是当我运行该程序时,出现以下错误:error 我在google上到处都看过,还没找到解决该问题的方法.我也尝试过用不同的方式编写代码,看看是否能告诉我任何事情. std::string yourName; std::cout << "What is your name?";

c – 有没有办法获得std:string的缓冲区

有没有办法让std :: string得到“原始”缓冲区? 我在考虑类似于CString :: GetBuffer()的东西.例如,使用CString我会这样做: CString myPath; ::GetCurrentDirectory(MAX_PATH+1, myPath.GetBuffer(MAX_PATH)); myPath.ReleaseBuffer(); 那么,std :: string有类似的东西吗?解

c – 如何将std :: string放入boost :: lockfree :: queue(或替代)?

我正在尝试将std :: strings放入boost :: lockfree :: queues,以便我的线程可以使用新数据互相更新. 当我尝试使用boost :: lockfree :: queue< std :: string> updated_data;,g说: In instantiation of ‘class boost::lockfree::queue >’: error: static assertion failed: (bo

字符串的c_str()函数的奇怪行为

我正在将我的项目从Visual Studio 06移动到2010.在这样做时,我在我的代码中观察到了这种行为.我有一个Get字符串函数,如下所示: string GetTheStr() { return strSomeStdString; } 然后有另一个函数调用上面的get函数,如下所示: const char* ptrStr = (char *)GetTheS

c – 如何获取std :: string中的字符数?

我应该如何获得C中字符串中的字符数?解决方法:如果您使用的是std :: string,请调用length(): std::string str = "hello"; std::cout << str << ":" << str.length(); // Outputs "hello:5" 如果您使用的是C字符串,请拨打strlen(). const char *str = "hello&quo

c – 如何连接std :: string和int?

我认为这很简单,但它存在一些困难.如果我有 std::string name = "John"; int age = 21; 如何组合它们以获得单个字符串“John21”?解决方法:按字母顺序排列: std::string name = "John"; int age = 21; std::string result; // 1. with Boost result = name + boost::lexical_cas

c – 修剪std :: string的最佳方法是什么?

我目前正在使用以下代码来修正程序中的所有std :: strings: std::string s; s.erase(s.find_last_not_of(" \n\r\t")+1); 它工作正常,但我想知道是否有一些可能会失败的最终案例? 当然,欢迎使用优雅的替代品和左侧解决方案的答案.解决方法:编辑从c 17开始,删除了标准库的某些部分.

c – std :: string分配策略

我对一些基本的字符串实现有点困惑.我一直在寻找内心的工作和学习新事物.我无法完全掌握如何管理内存. 只是来自基本字符串实现的一些花絮 >原始分配器用于char类型 typedef typename _Alloc::template rebind<char>::other _Raw_bytes_alloc; > …然后当分配Rep放在分配的缓冲区

c – 标准库函数,用于将提供operator <<的对象转换为std :: string

我刚才注意到我在我的C 11应用程序中使用了以下代码(工作安静很好): template <typename T> std::string output_streamable_to_string(T const& kObject) { std::ostringstream os; os << kObject; return os.str(); } 所以我的问题是:标准库(std)中是否存在提供此功能的函

c – 使用模板字符串时出现奇怪错误(InputIterator begin,InputIterator end);

鉴于这样的代码段: #include <iostream> #include <iterator> #include <fstream> #include <string> using namespace std; int main(){ ifstream file("1.txt"); string str((istream_iterator<char>(file)),istream_iterator<

c – 错误:调用'(const std :: basic_string)()’不匹配

我有一个地图,将一对两个类映射到一个简单的字符串. “FirstCollection”和“SecondCollection”是类,“myCollecttion”是其中之一的对象. 但是当迭代地图时,我收到编译错误: 错误:调用'(const std :: basic_string)()’不匹配 typedef std::map < std::pair < Collection, Env

c – 具有单个副本的Init std :: string

我在Win32上的C中有以下代码.它只是一些返回CHAR *的Win32 API的C扭曲: wstring expandEnvironmentVariables(const wstring & str) { DWORD neededSize = ExpandEnvironmentStrings(str.c_str(), nullptr, 0); vector<WCHAR> expandedStr(neededSize); if (0 == Expan

c – str.clear()和str =“”之间的区别

我有一个C std :: string str我已设置为某个字符串,现在想要重置,以便可以再次使用它.调用str.clear()vs str =“”之间有区别吗? 编辑.澄清一下:我通过在它上面添加一个char数组缓冲区来重用str:str.append(buf)解决方法:没有有效的区别.根据实现,使用clear()可能比分配给零的char指

c – 如何获得指向std :: string的第一个元素的指针,即使它是空的

如何获得指向非const std :: string的第一个元素的指针,即使它是空的. 我知道字符串的容量大于1,但是,只需使用 &my_string.front() 触发“超出范围的迭代器”断言失败,因为该字符串为空. 使用成员函数 data() 也不适合,因为我想要一个char *类型的指针,而不是const char *.我

std :: string的C位运算符

我的问题是关于如何在C std :: string上使用按位运算符.通过重载或功能无关紧要. std :: string的工作XOR / ^函数示例: std::string XOR(std::string value, std::string key) { std::string retval(value); long unsigned int klen = key.length(); long unsigned int vlen

c – 为什么我的MD5值打印时带有额外的“f”字符?

当使用std :: string的at()方法时,我有一个奇怪的问题.我想使用这个库计算给定字符串的md5哈希值:http://sourceforge.net/projects/libmd5-rfc/files/ 哈希是正确计算的,但是以人为方式打印存在问题.输出是: af04084897ebbf299b04082d105ab724 ffffffaf040848ffffff97ffffffebfffff

c – 使用比较运算符将std :: string作为std :: map中的键

我正在尝试使用std :: string作为std :: map中的键,但是我无法正确找到().我的代码有点复杂和大,所以这是一个小程序,演示了我遇到的问题.如果有人能告诉我为什么这不起作用,我将非常感激. 谢谢. #include <stdio.h> #include <string> #include <map> struct comparer { pub

c – std :: string”:无法添加两个指针

为何分配 std::string s="aaa"+1 工作得很好 std::string s="aaa"+1+"bbb" 获取错误错误14错误C2110:”:无法添加两个指针解决方法:没有运算符来连接C字符串. C字符串只是指针(const char *),所以如果你给它添加一个数字,它只会增加指针.然后将其转换为C字符串: std::string s =

c – std :: string构造函数抛出std :: out_of_range异常

使用VS 2012. 我正在制作刽子手.无论如何,我有一个函数来获取一个std :: string,其长度与猜测的当前单词的长度相同,但是用下划线填充. (如,空白). 功能: std::string getBlankWord(std::vector<std::string> words, int currentWordIndex) { return std::string(words[current

c – basic_string与CharT *

这是一个FAQ,但我找不到令人满意的答案.在我的项目中,我们支持std :: string,现在还必须支持宽字符串.所以我们想转移到basic_string,但是,事情就会停止工作,并且需要明确地拼写参数: #include <string> template <typename CharT, typename Traits, typename Allocator> void foo

c – std :: string中的波兰语字符

我有个问题.我正在为Linux编写一个波兰语应用程序(当然还有波兰语),编译时我会收到80个警告.这些只是“警告:多字符字符常量”和“警告:案例标签值超过类型的最大值”.我正在使用std :: string. 如何替换std :: string类? 请帮忙. 提前致谢.问候.解决方法:std :: stringdoes没有定义特