Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将char*(每个可能的值)分配给C++;一串 我是C++的。我试图把一个字符数组附加到C++字符串中。唯一的问题是这个数组可以有所有可能的值,负数、正数和0。因此,当我将此数组分配给字符串时,它会在某个点停止,因为它找到了一个0值。 1) 字符串可以附加这些值吗?或者它们必须严格地从1到127? 如果为true, 2) 即使找到0,是否有办法保持字符串赋值继续?_C++_String_Char - Fatal编程技术网

如何将char*(每个可能的值)分配给C++;一串 我是C++的。我试图把一个字符数组附加到C++字符串中。唯一的问题是这个数组可以有所有可能的值,负数、正数和0。因此,当我将此数组分配给字符串时,它会在某个点停止,因为它找到了一个0值。 1) 字符串可以附加这些值吗?或者它们必须严格地从1到127? 如果为true, 2) 即使找到0,是否有办法保持字符串赋值继续?

如何将char*(每个可能的值)分配给C++;一串 我是C++的。我试图把一个字符数组附加到C++字符串中。唯一的问题是这个数组可以有所有可能的值,负数、正数和0。因此,当我将此数组分配给字符串时,它会在某个点停止,因为它找到了一个0值。 1) 字符串可以附加这些值吗?或者它们必须严格地从1到127? 如果为true, 2) 即使找到0,是否有办法保持字符串赋值继续?,c++,string,char,C++,String,Char,对于append()的string::append(const char*s,size\t n)重载应该满足您的要求。假设cpp\u string是您的std::string变量或引用,而c\u string\u ptr是指向字符数组的指针: cpp_string.append( c_string_ptr, number_of_bytes); 但是请注意,std::string是std::basic_string的类型定义。由于char可能未在您的平台上签名,因此您可能无法获得所需的比较行为。

对于
append()
string::append(const char*s,size\t n)
重载应该满足您的要求。假设
cpp\u string
是您的
std::string
变量或引用,而
c\u string\u ptr
是指向字符数组的指针:

cpp_string.append( c_string_ptr, number_of_bytes);
但是请注意,
std::string
std::basic_string
的类型定义。由于
char
可能未在您的平台上签名,因此您可能无法获得所需的比较行为。您应该确保
char
已在您的平台上签名,或者您可能希望使用自己的typedef来防止将来平台(或构建)发生更改时出现问题:

typedef std::basic_string<signed char> sstring;  // or whatever name you like
typedef std::basic_string sstring;//或者随便你叫什么名字
使用功能

代码示例:

#include <iostream>
#include <string>
using namespace std;

int main ()
{
  string str2="My String";

  str.append("is nice",7);

  cout << str << endl;
  return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
string str2=“我的字符串”;
str.append(“很好”,7);

cout您可以使用以下功能:

字符串和附加(常量字符*s,大小\u t n)

字符串和附加(常量字符*s)

第一个将用char*追加,直到达到大小,第二个将追加,直到在字符串中找到一个
\0

因此,您可以将第一个值与chars的任何值一起使用,但必须注意第二个值,因为(char)0将终止追加


请参阅:

为什么首先使用
std::string
呢?向量
更合适。字符串有比较功能。我需要它。即使将-125值字符与5值字符进行比较,-125应该小于5。Michael Burr的答案应该满足您的要求,但我很想知道您的最新情况我正在尝试这样做(为您找出它停在
\0
的原因)。同样在回答您的第一个问题时,std::string可以包含(我相信)任何字符,包括
\0
。如果需要,您还可以使用
向量
上的
功能。可能的重复