首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

有关const char到char的有关问题。

2012-04-27 
有关const char到char的问题。。。代码很简单,来源于《c++程序设计》,谭浩强版。。#includeiostreamusing names

有关const char到char的问题。。。
代码很简单,来源于《c++程序设计》,谭浩强版。。

#include<iostream>
using namespace std;
struct Student
{
  int num;
  char name[20];
  float score[3];
};

int main()
{
  void print(Student);
  Student stu;
  stu.num=12345;
  stu.name="TanHaoQiang";
  stu.score[0]=60;
  stu.score[1]=70;
  stu.score[2]=80;
  print(stu);
  system("pause");
  return 0;
}

void print(Student stu)
{
  cout<<stu.num<<stu.name<<stu.score[0]<<stu.score[1]<<stu.score[]2<<endl;
}


这是编译报的错。。。15 E:\dev-c++\DEV-CPP\程序\书例7-5.cpp incompatible types in assignment of `const char[12]' to `char[20]' 

我将char name[20]改成string name。。程序就能运行了。。。。

我想知道一下,用char的话要怎么改源程序才行???谢谢喽。。。。

[解决办法]
stu.name="TanHaoQiang"; ==》strcpy (stu.name,"TanHaoQiang"); 这样也可以的。

[解决办法]
strcpy(stu.name, "TanHaoQiang");
[解决办法]
要用 strcpy(stu.name, "TanHaoQiang");拷贝函数才行。。
[解决办法]
stu.name="TanHaoQiang";
这里不对,name是个数组是个const char *常量,不能够修改其值,执行赋值操作是非法的。可以调用string库中函数strcpy函数来拷贝。
[解决办法]

C/C++ code
#include<iostream>#include <string>using namespace std;struct Student{  int num;  char name[20];  float score[3];};void print(Student stu);int main(){  void print(Student);  Student stu;  stu.num=12345;  strcpy(stu.name,"谭浩强比较坑爹");  stu.score[0]=60;  stu.score[1]=70;  stu.score[2]=80;  print(stu);  system("pause");  return 0;}void print(Student stu){  cout<<stu.num<<stu.name<<stu.score[0]<<stu.score[1]<<stu.score[2]<<endl;}
[解决办法]
只能使用strcpy 函数来拷贝的,char 数组不能使用 赋值号来进行赋值操作的
[解决办法]
呵呵,听楼上的说,我有点庆幸没有用过浩强哥的书,不过c++入门,本人强力推荐范磊老师的零起点学通c++
这个视频那是一个经典啊,如果喜欢的话,百度一下吧!
希望对楼主有用

热点排行