如何在c ++中创建一个char数组?

时间:2015-05-04 04:40:20

标签: c++

我正在尝试创建一个指向char的指针并将其传递给char *。 这是我定义char数组的代码 似乎编译器无法识别字符串的结尾 因为功能显示没有显示正确的字符串

char myword[] = { 'H', 'e', 'l', 'l', 'o', '\0' }; 
char  str[] = {'M','i','k','e',' ','s','m','i','t','h','\0'};
char str2[] = "Dragic\0";
char* pname=&str[0];
char* pteam=&str2[0];
Display(myword);

2 个答案:

答案 0 :(得分:1)

Display()功能中有错误。您发布的代码完全有效。您可以查看here

无论如何,为什么要用这种方式声明这些数组呢?你可以这样做:

char myword[] = "Hello";
char str[] = "Mike Smith";
char str2[] = "Dragic";

char* pname = &str[0];
char* pteam = &str2[0];

如果是常量字符串文字,则自动附加null终止符。然后:

printf("%s\n", myword);
printf("%s\n", str);
printf("%s\n", str2);
printf("%s\n", pname);
printf("%s\n", pteam);

输出:

Hello
Mike Smith
Dragic
Mike Smith
Dragic

您可以找到工作样本here

答案 1 :(得分:-1)

如果您只需要一个字符串,请不要使用char数组,请使用std::string。如果您需要数组,请使用std::vectorstd::array

如果你真的必须使用裸数组(堆分配)和指针,至少用RAII封装它。