PTA L1-042 日期格式化(字符数组与string的相互转换)
原题
主要通过这题介绍 C++ 中如何将字符数组与字符串的相互转换
字符数组转字符串:
char a[1000];
string s(&a[i],&a[j]);//i为要转化的其实位置,j为末尾位置加一
字符串转字符数组
#include<bits/stdc++.h>
using namespace std;
char a[15];
int main()
{
string s;
cin>>s;
strncpy(a,s.c_str(),s.length()+1);//字符强制转化为字符串函数,末尾同样加一
cout<<a;
}
AC代码:
#include<bits/stdc++.h>
using namespace std;
char s[1000];
int main()
{
string a,b,c;
cin>>s;
int n=strlen(s),flag=1,x;
string S(&s[2],&s[6]);//将字符数组转换为字符串
cout<<S<<endl;
for(int i=0;i<n;i++)
{
if(s[i]=='-'&&flag)
{
a=S.substr(0,i);
x=i;
flag=0;
}
else if(s[i]=='-')
{
b=S.substr(x+1,i-x-1);
x=i;
break;
}
}
c=S.substr(x+1);
cout<<c<<'-'<<a<<'-'<<b;
return 0;
}
其实这题可以直接将原字符数组转换为三个字符串,不用上面这么麻烦....
戒骄戒躁,百炼成钢!