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;
}

其实这题可以直接将原字符数组转换为三个字符串,不用上面这么麻烦....

posted @ 2020-03-08 21:04  Pecoz  阅读(475)  评论(0编辑  收藏  举报