求助大佬这种字符怎么把数字提取出来呀使用substr不太行
  • 板块学术版
  • 楼主魑魅魍魉唬
  • 当前回复7
  • 已保存回复7
  • 发布时间2024/3/12 16:00
  • 上次更新2024/3/12 19:14:11
查看原帖
求助大佬这种字符怎么把数字提取出来呀使用substr不太行
317218
魑魅魍魉唬楼主2024/3/12 16:00

输入学生学号和成绩,但是输入的数据不是规整的,如001*%@46^&=46~:79,要求提取出其中的数据,按照总成绩排名 我的程序是这样的,然后就是报错,在把成绩相加那里就会报错,求助大佬们看看

#include<bits/stdc++.h>
using namespace std;
struct student{
   string sno;
   int yu,shu,ying;
   int sum;
};
bool cmp(student a,student b){
   return a.sum>b.sum;
}
int main(){
   student stu[3];
   string s[3];
   for(int i=0;i<3;i++){
   	cin>>s[i][100];
   }
   for(int i=0;i<3;i++){
   	stu[i].sno=(s[i].substr(0,3)).c_str();
   	stu[i].yu=atoi(((s[i].substr(6,2)).c_str()));
   	stu[i].shu=atoi(((s[i].substr(12,2)).c_str()));
   	stu[i].ying=atoi(((s[i].substr(16,2)).c_str()));
   	stu[i].sum=stu[i].yu+stu[i].shu+stu[i],ying;//这句会报错
   }
   sort(stu,stu+3,cmp);
   for(int i=0;i<3;i++){
   	cout<<stu[i].sno<<" "<<stu[i].yu<<" "<<stu[i].shu<<" "<<stu[i].ying<<" "<<stu[i].sum<<endl;
   }
   return 0;
}
2024/3/12 16:00
加载中...