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");
}
}
scanf("%s",c[i]); 改成scanf("%s",&c[i]); 你没有对输入的数据取地址会报错
scanf("%s",c[i]); //这个地方报错了
修改为:scanf("%s",&c[i]);
scanf()的第二个参数需要输入地址。
如有帮助,请采纳一下,谢谢。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
把 int a[] = {0}改成char a[] = ‘\0’.也行。