相关疑难解决方法(0)

std :: string to char*

我想将std :: string转换为char*char []数据类型.

std::string str = "string";
char* chr = str;
Run Code Online (Sandbox Code Playgroud)

结果:"错误:无法将'std :: string'转换为'char'...".

有什么方法可以做到这一点?

c++ string char

305
推荐指数
11
解决办法
83万
查看次数

"&s [0]"是否指向std :: string中的连续字符?

我正在做一些维护工作,遇到类似以下的事情:

std::string s;
s.resize( strLength );  
// strLength is a size_t with the length of a C string in it. 

memcpy( &s[0], str, strLength );
Run Code Online (Sandbox Code Playgroud)

我知道使用&s [0]如果它是std :: vector会是安全的,但是这是std :: string的安全使用吗?

c++ stdstring memcpy c++03

37
推荐指数
3
解决办法
1万
查看次数

将十六进制字符串转换为字节数组

将可变长度十六进制字符串转换为"01A1"包含该数据的字节数组的最佳方法是什么.

即转换这个:

std::string = "01A1";
Run Code Online (Sandbox Code Playgroud)

进入这个

char* hexArray;
int hexLength;
Run Code Online (Sandbox Code Playgroud)

或这个

std::vector<char> hexArray;
Run Code Online (Sandbox Code Playgroud)

所以当我把hexdump -C它写入文件时,我得到包含的二进制数据01A1.

c++ string hex

35
推荐指数
7
解决办法
6万
查看次数

std :: vector <std :: string>到char*数组

我有一个std::vector<std::string>我需要用于C读取的函数的参数char* foo.我已经看到 如何转换std::stringchar*.作为新手C++,我正在尝试拼凑如何在矢量的每个元素上执行此转换并生成char*数组.

我已经看到了几个密切相关的SO问题,但大多数问题似乎都说明了朝着另一个方向发展的方法std::vector<std::string>.

c c++ stl stdvector

30
推荐指数
3
解决办法
4万
查看次数

如何将std :: string转换为const char*?

可能重复:
将std :: string转换为const char*或char*

void Foo::bar(const std::string& foobar) {
    // ...
    const char* foobar2 = (char*)foobar;
    // ...
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,我在编译期间遇到有关无效转换的错误.

有没有其他方式转换std::stringconst char*

c++

26
推荐指数
2
解决办法
5万
查看次数

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

有没有办法获得"原始"缓冲区oa std :: string?
我在想类似的东西CString::GetBuffer().例如,使用CString我会这样做:

CString myPath;  
::GetCurrentDirectory(MAX_PATH+1, myPath.GetBuffer(MAX_PATH));  
myPath.ReleaseBuffer();  
Run Code Online (Sandbox Code Playgroud)

那么,std :: string有类似的东西吗?

c++ winapi stl stdstring

14
推荐指数
2
解决办法
2万
查看次数

将字符串转换为char*

可能重复:
将std :: string转换为const char*或char*

可能是一个&或类似的遗失(我是cpp的noob).

我有

string R = "somthing";
char*  S;
Run Code Online (Sandbox Code Playgroud)

我将如何复制RS

c++ string

13
推荐指数
2
解决办法
12万
查看次数

C++:"我的文本"是std :: string,*char还是c-string?

我刚刚做了一个看似常见的新手错误:

首先,我们阅读了许多教程之一,如下所示:

 #include <fstream>
 int main() {
      using namespace std;
      ifstream inf("file.txt");
      // (...)
 }  
Run Code Online (Sandbox Code Playgroud)

其次,我们尝试在代码中使用类似的东西,如下所示:

#include <fstream>
int main() {
    using namespace std;
    std::string file = "file.txt"; // Or get the name of the file 
                                   // from a function that returns std::string.
    ifstream inf(file);
    // (...)
}
Run Code Online (Sandbox Code Playgroud)

第三,新手开发人员对一些神秘的编译器错误消息感到困惑.

问题是,ifstream的需要const * char 作为构造函数的参数.

解决方案的std :: string为const*字符转换.

现在,真正的问题是,对于一个新手来说,几乎所有教程中给出的"file.txt"或类似的例子看起来都像std :: string.

那么,"我的文本"是std :: string,c-string还是*char,还是取决于上下文?

您能否举例说明"我的文本"将如何根据上下文进行不同的解释?

[编辑:我认为上面的例子会让它显而易见,但我应该更明确一点:我的意思是双引号中包含的任何字符串的类型,即"myfilename.txt",而不是单词的含义'串'.]

谢谢.

c++ string char

9
推荐指数
2
解决办法
3640
查看次数

C++中的字符串对象末尾是否有空字符?

我们都知道自动附加到C字符串末尾的空字符... C++字符串对象怎么样?它的末尾是否还有一个空字符?

非常感谢!

c++ string

7
推荐指数
2
解决办法
1904
查看次数

字符串中[0]和&a [0]之间有什么区别?

string a = "asdf";
cout<<&a[0];
cout<<a[0];
Run Code Online (Sandbox Code Playgroud)

为什么这两个输出不同?为什么&a[0]不是地址而是整个字符串?

c++ string

7
推荐指数
1
解决办法
574
查看次数

标签 统计

c++ ×10

string ×6

char ×2

stdstring ×2

stl ×2

c ×1

c++03 ×1

hex ×1

memcpy ×1

stdvector ×1

winapi ×1