C++读取字符串问题

想读取一串字符串,里面有姓名和科目的分数,名字之间有空格(空格是不确定),然后有分数在后面,每门科目的分数用空格分开(有些记录只有3门,有些4门),怎样把它们分开读出呢?
我第一步就遇到问题了
int strlen = sizeof(name);
for(int i=0;i<strlen;i++)
{
if((record[i]>='a' && record[i]<='z') || (record[i]>='A' && record[i]<='Z'))
name[i] = record[i];
}
string name2 = name;
cout<<name2<<endl;

名字不能输出空格后的内容,怎样解决呢?
求解求解

第1个回答  2011-08-11
简单的讲: 名字中有空格会导致格式读取的混乱和处理的复杂。
要么名字中不允许带空格,要么分隔符不要用空格,可以改成Tab分隔符等;
如果非要名称中带空格, 还要使用空格进行分隔, 也可以实现, 但是处理就复杂了, 不建议使用(比如:将所有信息分段输入, 然后将前面不是数字的合并, 得到名称。)
第2个回答  2011-08-11
按题目要求该字符串中只有字母,空格和数字。
你在找名字的时候可以把不是数字的字符全部赋给名字,直到遇到第一个数字为止,然后再对得到的名字进行处理,出掉中间多余的空格,去掉字符串结尾的空格就行本回答被网友采纳
第3个回答  2011-08-11
该段代码的功能是从字符串record中复制长度为name串原有长度的英文字母来替换name的内容。然后在复制到name2中,最后显示ame2。
疑问如下:
1、name的原有长度是否确定?
2、record中是否有足够的英文字母来替换name中的内容?本回答被提问者采纳
相似回答