#include <iostream>
using namespace std;
int main()
{
float nums[3];
nums[0]=1.5;
nums[1]=2.75;
nums[2]=3.25;
const char* name[5]={"m", "i", "k", "e", "\0"};
int coords[2][3]={{1, 2, 3}, {4, 5, 6}};
cout << "nums[0]: " << nums[0] << endl;
cout << "nums[1]: " << nums[1] << endl;
cout << "nums[2]: " << nums[2] << endl;
cout << "name[0]: " << name[0] << endl;
cout << "Text String: " << name << endl;
cout << "coords[0][2]: " << coords[0][2] << endl;
cout << "coords[1][1]: " << coords[1][1] << endl;
return 0;
}
nums[0]: 1.5
nums[1]: 2.75
nums[2]: 3.25
name[0]: m
Text String: 0xffffcbb0
coords[0][2]: 3
coords[1][1]: 5
如何制作&#34;文本字符串:&#34;说&#34;迈克&#34;
我试过char name [5],
我试过char * name [5];
请帮助
谢谢你
我是c ++的新手,不会判断
答案 0 :(得分:3)
const char* name[5]={"m", "i", "k", "e", "\0"};
是指向字符的指针数组。您无意中创建了一个指向字符串而不是字符串的指针数组。
指针的 cout
导致打印地址,除了指向已编写<<
运算符的字符的指针以采用以null结尾的c样式字符串。
要解决此问题,您可以
1使用指向字符串文字的指针
const char* name="mike";
2使用字符数组
const char name[5]={'m', 'i', 'k', 'e', '\0'};
或3使用两者的组合
const char name[5]="mike";
作为一个额外的好处,因为在后两种情况下,初始化意味着数组的大小,你可以把它留下来,
const char name[]="mike";
,编译器会搞清楚。当你从“迈克”改为“亨利”时非常方便,因为你不必调整大小。
完成本练习后,请花些时间阅读std::string
。尽可能使用它而不是C-Style字符串。它会为你节省大量的时间,血液和眼泪。
答案 1 :(得分:1)
const char name[5]={'m', 'i', 'k', 'e', '\0'};
您需要的是一系列char
s。
使用单引号('
)编写字符文字。如果您使用双引号("
),则会获得字符串文字。
答案 2 :(得分:0)
使用您的符号,将双引号更改为单引号并删除星号:
const char name[5]={'m', 'i', 'k', 'e', '\0'};
或者您可以使用:
const char name[] = "mike";