jjzjj

c++ - 在 C++ 中将字符串 vector 转换为 char 数组

我正在尝试将字符串vector转换为C++中的字符数组。更具体地说,我正在尝试做的是使用以下命令拆分一个shell命令,例如“ls–latr”:istringstreamf(x);while(getline(f,x,'')){strings.push_back(x);}我相信这会给我strings[0]=="ls"和strings[1]=="-latr"。然后我正在尝试执行以下操作:execvp(strings[0],strings);但是,我得到这个错误:error:cannotconvert‘std::basic_string,std::allocator>’to‘constcha

c++ - 如何连接 "constant strings"和字符?

执行以下操作的“正确方法”是什么?(注意,我还不想将消息输出到屏幕上,数据需要存储在一个变量中。)std::cout>input;std::stringmessage="Today'sprogramwasbroughttoyoubytheletter'"+input+"'.";代码给出了错误消息invalidoperandsoftypesconstchar*andconstchar[3]tobinaryoperator+。我明白为什么会出现此消息。在谷歌搜索解决方案时,出现的结果建议依次将每个项目转换为字符串。但是,如果您必须连接十几个项目,这就变得不切实际了:std::string(

c++ - "Why switch statement cannot be applied on strings?"的答案是否仍然正确,即使使用 C++11/14?

我遇到了这个问题:Whyswitchstatementcannotbeappliedonstrings?并想知道答案是否:Thereasonwhyhastodowiththetypesystem.C/C++doesn'treallysupportstringsasatype.Itdoessupporttheideaofaconstantchararraybutitdoesn'treallyfullyunderstandthenotionofastring.仍然适用,即使在C++11/14中使用std:string。是否有多个elseif(...)的替代方案?

c++ - std::equal_range 与 lambda

假设我有一个字符串vector,我想找到所有以'a'开头的字符串,所以我可以这样做:structcmp{booloperator()(conststd::string&s,charc)const{returns.front()strings;...std::sort(strings.begin(),strings.end());autorange=std::equal_range(strings.begin(),strings.end(),'a',cmp{});...这种方法容易出错,容易出错(比如我觉得第二种方法应该是c),而且代码重复。那么是否可以使用通用lambda而不是使用2种

c++ - "Search words/strings in Matrix of Char"算法的复杂度

我的任务是从列表中搜索字母(20×20)单词(5)的网格。隐藏在网格中的任何单词总是以锯齿形段的形式出现,其长度可能只有2或3。锯齿形段只能从左到右或从下到上。所需的复杂度等于网格中字母数与列表中字母数的乘积。对于网格:••••••••••••••••••••••••••••ate•••••x••••••••••er•••••••e•••••••••it••••••••v•••••••ell••••••a••f••••••at••••e••••••rbg••••s•••••••ga•••••••和单词列表{"forward","iterate","phone","satellite"}

c++ - 使用字符串文字初始化时,std::strings 是否以 '\0' 结尾?

我知道字符串对象不是以null结尾的,但为什么要这么做?std::stringS("Hey");for(inti=0;S[i]!='\0';++i)std::cout所以构造函数也复制空终止符,但不增加长度?为什么会麻烦? 最佳答案 Sotheconstructorcopiesthenullterminatoraswell,butdoesnotincrementthelength?如您所知,std::string不包含空字符(并且它不会在此处复制空字符)。重点是您正在使用std::basic_string::operator[]。根

c++ - 将未知长度的 char** (c) 转换为 vector<string> (c++)

这个问题在这里已经有了答案:convertinganarrayofnullterminatedconstchar*stringstoastd::vector(4个答案)copyingcarrayofstringsintovectorofstd::string(4个答案)关闭9年前。如何将Cchar**转换为C++vector?是否有一些内置功能可以用来执行此操作,还是通过一系列迭代步骤来完成它更好?编辑:由于各种原因,C数组中的元素数量未知。我可以将其作为另一个参数传递,但这是绝对必要的吗?

c++ - strings.h 并用宏检查包装这个宏是否

我从Google搜索结果中推断出strings.h(来自here)适用于UNIX系统。我想用主机操作系统是否为Linux/UNIX的宏观检查来包装以下行。听到有关它的建议将不胜感激。提前致谢。#include 最佳答案 strings.h只包含几个函数,其中大部分只是标准库中函数的不同名称(例如bcmp()memcmp())。如果您的代码使用这些函数,而不是到处乱扔#ifdef为什么不编写您自己的集合呢?然后每个人都可以使用它们并愉快地免费进行条件编译。这是公共(public)领域中的一组未完全测试的函数,您可以自行承担使用风险:#

c++ - 临时 std::strings 返回垃圾

我还在学习c++,所以请多多包涵。我正在围绕boost文件系统路径编写一个简单的包装器——我在返回临时字符串时遇到了奇怪的问题。这是我的简单类(这不准确,但非常接近):typedefconstchar*CString;typedefstd::stringString;typedefboost::filesystem::pathPath;classFileReference{public:FileReference(constchar*path):mPath(path){};//returnsapathStringpath()const{returnmPath.string();};//

ios - swift 3 : most performant way to check many strings with many regular expressions

我确实有一个包含数百个字符串的列表和一个包含10k正则表达式的数组。我现在必须遍历所有字符串并检查10k正则表达式中的哪些匹配。执行此操作的最高效方法是什么?目前我正在这样做:myRegularExpression.firstMatch(in:myString,options:myMatchingOption,range:NSMakeRange(0,myString.characters.count))==nil其中myRegularExpression是一个NSRegularExpression存储以供重用,myMatchingOption是NSRegularExpression.M