c - 我可以将字符串从二维数组复制到一维数组(数组和指针)
问题描述
我发现将字符串从二维数组复制到一维数组非常棘手。所以我通过地址访问了这些值。它在 for 循环中运行良好。是一维数组真的是用二维数组值复制的。
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;
解决方案
您可以使用 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;
}
推荐阅读
- json - Golang 中的类型转换
- c++ - QUDPSocket 无法从远程以太网接收
- angular - 如何使用 Firebase 功能部署 Angular 9 通用应用程序
- java - Firestore android studio中的CollectionGroup查询
- c++ - std::is_invocable 的奇怪行为
- linux - 无法将 max_allowed_packet 大小设置为 2G
- r - 用于对多个变量运行线性模型和方差分析并在数据框中收集 p 值的函数
- python - 在不使用循环的情况下,在 numpy 中选择具有 (n,n) 形状掩码的 (n,n,2) numpy 数组的元素
- c# - 如何附加到 Visual Studio Code 中的特定进程
- batch-file - 尝试在批处理文件中生成 65 到 67 之间的随机数