您的位置:首页 > 其它

poj2013---二维数组指针使用

2015-05-28 15:29 183 查看
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
int n,i,set_num=0;
char arr1[15][26],arr2[15][26];
char *p1_fir,*p1_sec,*p2_sta,*p2_end;
while(scanf("%d",&n)!=EOF)
{
if(n==0)
break;
for(i=0;i<n;i++)
{
scanf("%s",arr1[i]);
}
p1_fir=&arr1[0];
p1_sec=&arr1[1];
p2_sta=arr2;
p2_end=arr2+(n-1);
while(1){
if(p2_sta==p2_end)
{
strcpy(p2_end,p1_fir);
break;
}
if(p2_sta>p2_end)
break;
strcpy(p2_sta,p1_fir);
strcpy(p2_end,p1_sec);
p1_fir+=52;
p1_sec+=52;
p2_sta+=26;
p2_end-=26;
}
printf("SET %d\n",++set_num);
for(i=0;i<n;i++){
printf("%s\n",arr2[i]);
}
}
return 0;
}


让二维数组名+1就是第二个大元素的首地址

比如:arr[m]
p1=arr[0] 对于p1+1只加一个字节

WA:字符串忘记给\0预留一个位置
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: