迷失的加百列
2021-05-16 17:02
采纳率: 66.7%
浏览 65

c语言//怎么把二维字符数组的字符串拷贝到一个一维数组

本题是pat乙级1003

#include<stdio.h>
#include<string.h>
int main(){
int n=0;
int a[]={0};
char c[10][101] ;
scanf("%d",&n);
 for(int i=0;i<n;i++){
     scanf("%s",c[i]);     
 }
for(int k=0;k<n;k++)
{
    strcpy(a,c[k]);//这个地方报错了
   //wp记录p的位置,wt记录t的位置,mp记录p的个数,mt记录t的个数,amount记录pat以外字符的个数
   int wp=0,wt=0,mp=0,mt=0,count=0;
   int length=strlen(c[k]);
   for(int j=0;j<length;j++){
     if(a[j]=='P'){
       mp++;
       wp=j;
     }
     
     if(a[j]=='T'){
       mt++;
       wt=j;
     }
     
     if(a[j]!='P'&&a[j]!='A'&&a[j]!='T')
       count++;
   }
   
   int center=wt-wp-1;
   int later=length-wt-1;
   if(mp==1&&mt==1&&count==0&&wp*center==later&&wt-wp>1)
        printf("YES\n");
       else
        printf("N0\n");
 }
}

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 已采纳

    scanf("%s",c[i]);    改成scanf("%s",&c[i]); 你没有对输入的数据取地址会报错

    已采纳该答案
    打赏 评论
  • qfl_sdu 2021-05-16 17:07

    scanf("%s",c[i]);     //这个地方报错了

    修改为:scanf("%s",&c[i]);

    scanf()的第二个参数需要输入地址。

    如有帮助,请采纳一下,谢谢。

    打赏 评论
  • 有问必答小助手 2021-05-17 16:33

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    打赏 评论
  • m0_57445115 2021-08-14 17:10

    把 int a[] = {0}改成char a[] = ‘\0’.也行。

    打赏 评论

相关推荐 更多相似问题