Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.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
C++;无限制的字符 我对C语言相当精通,但我认为学习C++也是个好主意。我唯一搞不懂的是chars。我知道你可以使用字符串库,但我也想找出字符_C++_Char - Fatal编程技术网

C++;无限制的字符 我对C语言相当精通,但我认为学习C++也是个好主意。我唯一搞不懂的是chars。我知道你可以使用字符串库,但我也想找出字符

C++;无限制的字符 我对C语言相当精通,但我认为学习C++也是个好主意。我唯一搞不懂的是chars。我知道你可以使用字符串库,但我也想找出字符,c++,char,C++,Char,我知道你可以设置一个字符,限制如下: #include <iostream> using namespace std; int main() { char c[128] = "limited to 128"; cout << c << endl; system("pause"); return 0; } #包括 使用名称空间std; int main() { 字符c[128]=“限制为128”; 不能你可以使用字符的向量你不能没有限

我知道你可以设置一个字符,限制如下:

#include <iostream>
using namespace std;

int main()
{
   char c[128] = "limited to 128";
   cout << c << endl;
   system("pause");
   return 0;
}
#包括
使用名称空间std;
int main()
{
字符c[128]=“限制为128”;

不能你可以使用
字符的
向量

你不能没有限制地拥有一个数组。数组占用内存空间,遗憾的是,没有无限内存这回事

基本上,您必须创建一个具有特定大小的数组,并编写逻辑,以便在需要更多空间时扩展数组的大小(并且可能在需要更少空间时缩小数组)


这就是
std::string
std::vector
为您所做的。

std::string是字符向量的一个很好的实现:)

数据结构需要为其分配内存

某些数据结构(如字符串或字符向量)在其类中具有内部逻辑,可根据需要动态分配内存


数组(来自C)不是这样的-您需要手动为它们分配内存,或者像您的示例那样通过静态方式(char C[128]),或者在运行时通过malloc()和company动态地分配内存。当然,正确地进行动态分配/重新分配不是很简单,为什么要在已经有类(例如string)的情况下费事呢这对您来说是正确的吗?:)

C/C++
char
数组与
char*
几乎相同。相同的代码块可以重写为:

int main()
{
   char* c = "limited to 128";
   cout << c << endl;
   system("pause");
   return 0;
}


你的意思是一个运行时间限制的数组。<代码> char < /C>只是一个数据类型。在任何情况下,确保你正在从一本书中学习C++。从其他语言中使用知识或者使用在线资源不会让你在任何地方得到。)(不假设你这样做,以防万一。)你可以……但我猜这并不符合Lienau所寻找的精神,因为这会打断代码的第7行。@Mac:他不想使用std::string或指针,但仍然希望无限制地使用裸字符。
vector
有什么问题吗?我认为手工分配没有任何意义。没有ng,我的印象是它是OP的明显替代品,因此是裸体版。
char* str = malloc(sieof(char) * requiredlength); //C-compatible
char* str = new char[requiredlength];