问题描述
我也希望我的字符串由空格组成。所以我使用了 getline
而不是 cin
。
我想将 SearchStd->StdName 替换为 NewName。所以我使用了strcpy。
但我不能这样做,因为字符串类型不是字符数组。
所以我想知道我应该用什么替换strcpy,来替换结构成员的字符串类型。
struct Subject { //과목 정보
string SubName; //과목 이름
int Hakjum; //과목 학점
char Grade[10]; //과목 평점
float GPA; // 과목 평점
};
struct Student { //학생 정보
string StdName; //학생 이름
int Hakbun; //학번
Subject *Sub; //과목
int SubNum; //과목 수
float AveGPA; //교과목 평균
};
void ModifyStdInfo(Student *pSt,int StudentNum){ //학생 정보 수정
Student* SearchStd;
SearchStd = StdSearch(pSt,StudentNum);
if(SearchStd != NULL){
string NewName;
int NewHakbun=0;
cout<<"* ("<<SearchStd->StdName<<","<<SearchStd->Hakbun<<")의 정보를 수정하세요\n";
cout<<"이름 :";
getline(cin,NewName);
cout<<NewName<<endl;
strcpy((*SearchStd).StdName,NewName);
cout<<"학번 : ";
cin>>NewHakbun;
SearchStd->Hakbun=NewHakbun;
}
}
解决方法
您可以使用 operator=
复制 std::string
。
(*SearchStd).StdName = NewName;