草庐IT

My_string

全部标签

c++ - 如何将 boost::any_cast 转换为 std::string

我有这个测试片段#include#include#include#include#includeclasswrapper{intvalue;charcharacter;std::stringstr;public:wrapper(inti,charc,std::strings){value=i;character=c;str=s;}voidget_data(){std::coutcontainer;container.push_back(10);container.push_back(1.4);container.push_back("Mayukh");container.push_ba

c++ - 使用表达式初始化 char * 不起作用

以下代码产生了错误的输出:stringmy_string="My_First_Text";char*my_pointer=(char*)(my_string+"My_Second_Text").c_str();为什么?当我初始化my_pointer时,我假设不需要my_pointer=newchar[100]。如果这个假设不成立,那为什么呢? 最佳答案 注意my_string+"My_Second_Text"是一个临时的std::string,会在表达式后立即销毁。这意味着my_pointer将立即悬垂,因为它应该指向的char数组

c++ - 如何将带前导零的整数插入到 std::string 中?

在C++14程序中,我得到一个类似的字符串std::strings="MyFile####.mp4";和一个0到几百的整数。(它永远不会是一千或更多,但以防万一。)我想用整数值替换“####”,根据需要用前导零匹配'#'字符数。修改s或生成这样的新字符串的巧妙C++11/14方法是什么?通常我会使用char*字符串和snprintf()、strchr()来查找“#”,但我想我应该适应现代并更频繁地使用std::string,但只知道它的最简单用法。 最佳答案 WhatistheslickC++11/14waytomodifysorp

c++ - 如何将 char* 浅复制到 std::string?

我想知道是否可以将char*浅复制到std::string。 最佳答案 如果您的目标是在不复制数据的情况下使用char*构造一个std::string对象:不,这是不可能的。std::string拥有它的资源,它不能引用另一个char*。这也是为什么适当的构造函数采用constchar*而不是char*的原因:它不修改数据,而是复制数据。在C++17中,您有std::string_view,它恰好用于引用它不拥有的字符串(文字)。请注意,此View并非旨在修改数据,因此它再次使用constchar*而不是char*构造。

c++ - C2059 语法错误 'string' ?

extern"C"{#endif#include#include#include"attributes.h"}#endif我添加了extern"C"{}然后我得到了C2059string错误所以我尝试使用#endif,现在又出现了4个错误。Error1errorC2059:syntaxerror:'string'd:\c-sharp\c++compiling\consoleapplication7\consoleapplication7\libavutil\rational.h311ConsoleApplication7如何修复这个字符串错误? 最佳答案

c++ - std::string 的串联引用是安全的吗?

我在看一些已经使用了很长时间没有问题的代码,下面我有一个简化版本:voidSomeClass::someMethod(conststd::string&arg1,conststd::string&arg2){//unrelatedcodeconststd::string&var=arg1+arg2;//varusedinotherconcatenations//varusedtoindexamap}我会假设var使用起来不安全,因为它引用了一个临时变量。这里的临时对象的生命周期太短或者它一直存活到方法结束? 最佳答案 constst

c++ - 根据长度对集合 <string> 进行排序

我的问题与this有关.我想借助作为谓词的lambda表达式对set执行sort()操作。我的代码是#include#include#include#includeintmain(){usingnamespacestd;strings="abc";setresults;do{for(intn=1;nbool{size_talength=a.length();size_tblength=b.length();return(alength::const_iteratorx=results.begin();x!=results.end();++x){cout但是错误的数量和类型是如此复杂,以

c++ - getline(cin, String) 在没有另一个输入的情况下接收输入

我的代码是这样的,stringaString;cin>>aString;cout)gets:"每次我运行它时,我都会输入“12”,我得到“12”和“”。我想知道为什么getline会在没有用户输入的情况下收到。我可以理解,当我输入“1224”之类的内容时,cin将获得“12”,而getline应该获得其余部分。(另外,如果有人能回答,中间的空格被视为cin的结尾,那么为什么它会传递给getline?)刚开始使用C++上的字符串,所以请不要让它太难。谢谢你。 最佳答案 当您将标准流提取与getline混合使用时,getline有时会返

c++ - 游戏开发 : Should I program my levels or interpret them from a file?

游戏将用C++编写编程:enemies.puch_back(newDefaultEnemy(200,300,3,5));enemies.puch_back(newDefaultEnemy(500,400,4,5));enemies.puch_back(newDefaultEnemy(300,420,3,15));enemies.at(2).createAward(newKey(4),"pling.wav");或者从这样的文件中解释它们:DefaultEnemy20030035DefaultEnemy50040045DefaultEnemy300420315CreateAward2"pl

c++ - std::string 或 std::vector<char> 保存原始数据

我希望这个问题适用于stackoverflow...将原始数据字节(8位)存储在std::string中有什么区别?而不是将它们存储在std::vector中.我正在从文件中读取二进制数据并将这些原始字节存储在std::string中.这很好用,这样做没有问题。我的程序按预期工作。但是,其他程序员更喜欢std::vector方法并建议我停止使用std::string因为它对原始字节不安全。所以我想知道为什么使用std::string可能不安全保存原始数据字节?我知道std::string最常用于存储ASCII文本,但是一个字节就是一个字节,所以我不明白std::vector的偏好.感谢