明明得到了一串的信息,包括编号,姓名,生日,其他信息。
每种信息之间用逗号分隔
现在请你把它们分割并按要求输出
明明得到了一串的信息,包括编号,姓名,生日,其他信息。
每种信息之间用逗号分隔
现在请你把它们分割并按要求输出
一行信息
03114,Mike,09990302,Hello everyone.
number is:03114
name is:Mike
Mike's birthday is:0999Y03M02D //**注意Mike不是固定的
Other information:Hello everyone.
03114,Mike,09990302,Hello everyone.
number is:03114
name is:Mike
Mike's birthday is:0999Y03M02D
Other information:Hello everyone.
代码如下:
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int main() { int i,len,m,n,d; char a[110],bir[8],mat[81],num[10],name[10]; gets(a); len=strlen(a); for (i=0;i<len;i++) { if (a[i]==',') break; num[i]=a[i]; } m=i+1; int j=0; for (i=m;i<len;i++) { if (a[i]==',') break; name[j]=a[i]; j++; } n=i+1; j=0; for (i=n;i<len;i++) { if (a[i]==',') break; bir[j]=a[i]; j++; } d=i+1; j=0; for (i=d;i<len;i++) { mat[j]=a[i]; j++; } int x=j; cout<<"number is:"; for (i=0;i<m-1;i++) cout<<num[i]; cout<<endl; cout<<"name is:"; for (i=0;i<n-m-1;i++) cout<<name[i]; cout<<endl; for (i=0;i<n-m-1;i++) cout<<name[i]; cout<<"'s birthday is:"; for (i=0;i<=3;i++) cout<<bir[i]; cout<<'Y'<<bir[4]<<bir[5]<<'M'<<bir[6]<<bir[7]<<"D"<<endl; len=strlen(mat); cout<<"Other information:"; for (i=0;i<x;i++) cout<<mat[i]; return 0; }
学习心得:
差点把自己绕晕了,,,关于m,n,d,x这几个处理了很久才弄明白,,发现自己每次将字符串分割在两个数组中后,对于第二个数组总是不注意长度的变换,导致每次数组二输出的还是原长,也就是访问到数组外去了。。。
这个做得还是太繁琐了,,,当我学会更多的算法后能够化简很多啊,听说大神们都是用头文件做题的。。。