c++ 指针数组的赋值

char * key[];//有序的关键字数组

while ((c = getchar()) !='#')
{
switch(c) {
case '1':
key[] = {"发布日期","工作地点","招聘人数","工作年限","外语要求","薪水范围","学    历"
};
break;

case '2':
key[] = {"工作性质", "工作地点", "发布日期", "截止日期", "招聘人数","薪水", "工作经验", "学历", "简历语言要求", "语言能力"
};
break;

就上面几行代码,编译出错:

D:\work_backup\regexTest\e.cpp(96) : error C2059: syntax error : ']'
D:\work_backup\regexTest\e.cpp(96) : error C2143: syntax error : missing ';' before '{'
D:\work_backup\regexTest\e.cpp(98) : error C2143: syntax error : missing ';' before '}'
D:\work_backup\regexTest\e.cpp(105) : error C2059: syntax error : ']'
D:\work_backup\regexTest\e.cpp(105) : error C2143: syntax error : missing ';' before '{'
D:\work_backup\regexTest\e.cpp(107) : error C2143: syntax error : missing ';' before '}'

望解答。
谢谢大家关注,本人已解决

把你的完整的代码发上来
就这一小段看不出什么东西出来

你的问题主要是:
1、你还没有给指针分配空间,当然不能赋值了
2、数组不能整个一起赋值,必须一个一个来
3、key数组如果在声明的时候没有赋初值,就必须声明其大小

更正如下:

std::string key[15];//有序的关键字数组

while ((c = getchar()) !='#')
{
switch(c) {
case '1':
{
key[0] = "发布日期";
key[1] = "工作地点";
key[2] = "招聘人数";
key[3] = "工作年限";
key[4] = "外语要求";
key[5] = "薪水范围";
key[6] = "学 历";
break;
}

case '2':
{
key[0] = "工作性质";
key[1] = "工作地点";
key[2] = "发布日期";
key[3] = "截止日期";
key[4] = "招聘人数";
key[5] = "薪水";
key[6] = "工作经验";
key[7] = "学历";
key[8] = "简历语言要求";
key[9] = "语言能力";
break;
}

另外需要包含头文件#include <string>
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-05-28
用getchar()应该刷新缓冲区,用cout<<endl;
也可以定义一个变量如:
char ch;
cin>>ch;
switch(ch)
{
..............
}
第2个回答  2007-05-28
用case (char)1:
相似回答