草庐IT

hex_char

全部标签

c++ - 如何从 std 字符串 (c_str()) 设置 char * 值不起作用

我不知道,但这对我不起作用,当我尝试从返回标准字符串的函数中设置char*值时,我得到了垃圾值:stringfoo(){stringtmp="dummyvalue";returntmp;}char*cc=(char*)foo().c_str();//ifiremovethecastingimgettingerror//wheniprinttheccigetgarbageprintf("%s",cc); 最佳答案 cc指向的数据的生命周期与它来自的字符串的生命周期相同(充其量-如果您修改字符串,它甚至更短)。在你的例子中,foo()的

c++ - 如何有效地将 std::vector<char> 复制到 std::string

这个问题是这个Howtoefficientlycopyastd::stringintoavector的反面我通常以这种方式复制vector(空终止字符串)std::strings((char*)&v[0]);或者(如果字符串已经被声明)像这样s=(char*)&v[0];它完成了工作,但也许还有更好的方法。编辑C风格的转换很丑陋,有人告诉我这又如何s=reinterpret_cast(&vo[0]); 最佳答案 只需使用迭代器构造函数:std::strings(v.begin(),v.end());(编辑):或者使用char-poi

c++ - 具有模板参数大小的 Const char 数组与 char 指针

我今天在一些代码中看到了以下类型的构造:templateunsignedintf(constchar(&a)[N]);有这个比有任何合理的点:unsignedintf(constchar*a);我隐约理解后者的指针共享含义,但它真的很糟糕,需要用两倍大小的晦涩代码代替吗?(不幸的是,我不能问代码的作者,否则我会) 最佳答案 将任何原始指针传递给函数的目的是调用者有一些想法:它指向什么。它指向多少。作为输入参数的C风格字符串推断后者,因为假设“多少”被认为是到达空字符终止符。但是如果您不传递C风格的字符串怎么办?如果它只是零个或多个c

c++ - 将 _TCHAR* 转换为 char*

我正在尝试获取asimpleOpenCVsample在Windows上使用C++工作,而我的C++不仅仅是生锈的。Thesample相当简单:#include#include#includeusingnamespacecv;usingnamespacestd;intmain(intargc,char**argv){if(argc!=2){cout当我在VisualStudio2012中创建一个新的简单C++控制台应用程序(使用ATL)时,我得到了一个不同的main模板:int_tmain(intargc,_TCHAR*argv[])所以在我将文件名发送到OpenCV的imread函数之

c++ - 如何在 C 中找到 "char *"数组的长度?

我声明了以下数组:char*array[2]={"One","Two"};我将这个数组传递给一个函数。如何在函数中找到这个数组的长度? 最佳答案 将数组传递给函数后,不费吹灰之力就无法找到数组的长度。你需要:使用存储大小的容器,例如vector(推荐)。同时传递尺寸。这可能需要对现有代码进行最少的修改,并且是最快的修复方法。使用标记值,就像C字符串那样1。这使得查找数组的长度成为一个线性时间操作,如果您忘记了标记值,您的程序可能会崩溃。在大多数情况下,这是最糟糕的做法。在传递数组时使用模板来扣除数组的大小。您可以在这里阅读:Howd

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

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

c++ - 使用流提取到 char 指针时出现段错误

我有一个问题。我有以下结构:typedefstruct{intvin;char*make;char*model;intyear;doublefee;}car;然后我有以下方法询问用户汽车的品牌并将其作为字符指针返回:char*askMake(){char*tempMake=NULL;cout>tempMake;returntempMake;}然后我有一辆临时车struct:cartempCar;我正在尝试以这种方式为其分配一个值:tempCar.make=askMake();它编译得很好,但我在运行时遇到了段错误。 最佳答案 您还没

c++ - 错误 C2440 : '=' : cannot convert from 'const char [2]' to 'char'

我正在学习C++,但我在做一些新手的事情时遇到了问题。我正在尝试创建一个非常小的应用程序,它接受用户输入并将其存储到一个char数组中。然后我解析该数组并删除所有括号和dases并显示它。像下面这样(325)858-7455到3258587455但是我遇到了错误errorC2440:'=':cannotconvertfrom'constchar[2]'to'char'下面是我的简单代码,可以很容易地放入编译器并运行。#include"stdafx.h"#include#includeusingnamespacestd;/*ThisisatemplateProject*/intmain(

c++ - int 和 char 数组有什么区别?

下面的int和char数组有什么区别:intmain(){intnumbers[]={2,1,3};charletter[]={'a','b','\0'};cout输出:0x22ff12//anaddressab为什么不显示213?我知道数组的名称将指向其第一个元素的地址,但为什么char数组显示不同的行为吗? 最佳答案 没有operator确切地说,采用数组的重载,因此您传递的参数(例如numbers和letter)经过数组到指针的转换,变为void*和char*分别。operator过载这需要constvoid*,另一个需要co

c++ - 将 const char * 转换为 std::string

这个问题在这里已经有了答案:Howtoconvertaconstchar*tostd::string[duplicate](6个答案)关闭8年前。我有一个从处理函数返回的constchar*,我想将它转换/分配给std::string的实例进一步操纵。这看起来应该是直截了当的,但我找不到任何说明应该如何完成的文档。显然,我错过了一些东西。见解赞赏。