[英]Can I copy string from two dimensional array to one dimensional array (Array&Pointers)
I found quiet tricky in copying string from two dimensional array to one dimensional array. 我发现将字符串从二维数组复制到一维数组时遇到了麻烦。 So I made access those value by address. 因此,我按地址访问了这些值。 It is working fine inside for loop. for循环内部运行良好。 Is the one-dimensional array is really copied with two-dimensional array value. 是将一维数组真正复制为带有二维数组的值。
char *str[4] = {"i " "California", "ii " "Texas", "iii " "Florida", "iv " "Washington"}; //two dimensional array
int r = 0, c, i = 0;
char *temp; //one dimesional array
for(r = 0; r < 4; r++){
c = 0;
while(*(str[r]+c) != '\0'){
printf("%c", *(str[r]+c));
c++;
temp = &str[r][c];
printf("%c", *temp);
}
printf("\n");
}
return 0;
You can use calloc for allocation temp pointer memory size. 您可以使用calloc分配临时指针内存大小。
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
char *str[4] = {"i " "California", "ii " "Texas", "iii " "Florida", "iv " "Washington"}; //two dimensional array
int r = 0;
for(r = 0; r < 4; r++)
{
char *temp = (char*) calloc (strlen(str[r]) ,sizeof(char));
strcpy(temp, str[r]);
printf("%s", str[r]);
printf("\n");
free(temp);
}
return 0;
}
assuming: 假设:
char array2dim[x][y];
then to create a 1 dimensional array.. 然后创建一个一维数组。
char array1dim[x*y];
memcpy( array1dim, array2dim, x*y );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.