标签: stdstring

是否有相当于LPTSTR的字符串?

是否有相当于LPTSTR的字符串?我知道字符串和wstring.有没有tstring?

c++ windows stdstring

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

C++寻找String.Replace()

我在C++中有一个char数组,它像{'a','b','c',0,0,0,0}

现在我把它改成一个流,我希望它看起来像"abc",其中有四个空格,我主要使用std :: stiring,我也有提升.我怎么能用C++做到这一点

基本上我认为我正在寻找类似的东西

char hellishCString[7] = {'a','b','c',0,0,0,0}; // comes from some wired struct actually...
std::string newString(hellishCString, sizeof(hellishCString));

newString.Replace(0,' '); // not real C++

ar << newString;
Run Code Online (Sandbox Code Playgroud)

c++ stdstring

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

条件运算符出现"无效转换"错误

我在这行中遇到编译错误:

cout << (MenuItems[i].Checkbox ? (MenuItems[i].Value ? txt::mn_yes : txt::mn_no) : MenuItems[i].Value)
Run Code Online (Sandbox Code Playgroud)

错误:

menu.cpp|68|error: invalid conversion from 'int' to 'const char*'
menu.cpp|68|error:   initializing argument 1 of 'std::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]'
Run Code Online (Sandbox Code Playgroud)

MenuItems是以下类的std :: vector:

class CMenuItem
{
public:
string Name;
int Value;
int MinValue, MaxValue;
bool Checkbox;
CMenuItem (string, int, int, int);
CMenuItem (string, bool);
};
Run Code Online (Sandbox Code Playgroud)

mn_yes和mn_no是std :: strings.

编译器是MinGW(与代码:: blocks一起分发的版本).

c++ ternary-operator stdstring

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

绑定到函数的指针只能用于调用函数

我刚刚从char数组转移到std :: string而且我已经遇到了一个问题,我可能正在做一些非常愚蠢的事情,随意嘲笑:

int main()
{
    string * p = new string;
    memset(p, 0, sizeof(string));

    expected_exepath(p);

    cout << p->data;

    delete p;
}
Run Code Online (Sandbox Code Playgroud)

错误在p-> data中,它表示"绑定到函数的指针只能用于调用函数".p是std :: string,所以我不明白为什么它认为我正在尝试叫一个功能.

c++ pointers stdstring

1
推荐指数
2
解决办法
9772
查看次数

C++ std :: string和string

我不认为有人告诉我在使用std :: string和C++中的字符串数据类型之间的区别是什么?

在什么情况下应该在标准字符串上使用std :: string?

谢谢.

c++ string std stdstring

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

将unsigned char*数组转换为std :: string

我正在使用此代码将unsigned char*(指向256个值的数组)转换为std :: string:

int ClassA::Func(unsigned char *dataToSend, int sendLength)
{
    std::stringstream convertStream;
    std::string dataToSendStr = "";

    for(int i=0; i<=sendLength; i++) convertStream << dataToSend[i];    

    while(!convertStream.eof()) convertStream >> dataToSendStr;
    ...
}
Run Code Online (Sandbox Code Playgroud)

但后来我有这种格式的dataToSendStr:

dataToSendStr "" 
[0]           0x00 
[1]           0x00 
[2]           0x04 
[3]           0xC0
Run Code Online (Sandbox Code Playgroud)

如果我现在使用这个值我只得到""而不是重要值[0-3]!

- >需要类似:dataToSendStr"000004C0"

谢谢你的帮助!

c++ arrays stringstream stdstring

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

带有%s和std :: string的sprintf给出了乱码

在以下代码中:

#include <string>
using namespace std;

int main(){
    char command[300];
    string stringz = "mystringy";
    sprintf(command,"echo \"something with a string %s\" ", stringz);
    system(command);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么是输出

something with a string 8?
Run Code Online (Sandbox Code Playgroud)

而不是预期的

something with a string mystringy
Run Code Online (Sandbox Code Playgroud)

一个愚蠢的问题,但我无法找到答案.

c++ string printf variadic-functions stdstring

1
推荐指数
2
解决办法
2207
查看次数

basic_string类是否真的具有需要多个参数的复制构造函数,还是只是构造函数?

我正在阅读为什么复制构造函数有多个参数?.

接受的答案说:

std::basic_string的确有一个:

basic_string(const basic_string& s, 
         size_type pos = 0, size_type n = npos)
Run Code Online (Sandbox Code Playgroud)

但是http://www.cplusplus.com/reference/string/basic_string/basic_string/说:

basic_string (const basic_string& str, size_type pos, size_type len = npos,
              const allocator_type& alloc = allocator_type());
Run Code Online (Sandbox Code Playgroud)

上面不是复制构造函数,而是子串构造函数,它复制str从字符位置开始pos并跨越len字符的部分.

C++标准部分说:

如果X类的第一个参数是X&,const X&,volatile X&或const volatile X&,并且没有其他参数或者所有其他参数都有默认参数,则X类的非模板构造函数是一个复制构造函数

那么,该链接的接受答案是否不正确?这是子串的真正basic_string类构造函数吗?我已经在链接上检查了C++ 98,C++ 11和C++ 14规范中的原型并显示了相同的内容.

c++ string parameters stdstring copy-constructor

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

为什么将std :: string传递给CString.Format()有时会崩溃?

使用CString.Format(),我传给它一个std::map返回std::string给定的时候int.

所以:

CString cStr;
cStr.Format("%s", IntToStdStringMap[1]);
Run Code Online (Sandbox Code Playgroud)

其中,IntToStdStringMap[1]返回一些字符串,我们会说"你好,世界!".问题是每次都不会崩溃.最终,我将收到访问冲突.

为什么会这样?

请记住,将代码更改为以下内容:

CString cStr;
cStr.Format("%s", IntToStdStringMap[1].c_str());
Run Code Online (Sandbox Code Playgroud)

缓解了这个问题.

有任何想法吗?

c++ c-strings stdstring c++11

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

我如何知道是否实际创建了std :: string?

我想使用std::string(size_type count,CharT ch)具有较大价值的count。阅读https://en.cppreference.com/w/cpp/string/basic_string/basic_string,如果此构造函数失败,我将找不到异常定义。

如果它是正确的,尽管noexcept构造函数中没有子句,如何确定该字符串已创建?我应该检查它的大小是否不为0?

c++ out-of-memory stdstring

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