A. c语言创建数组的3种方法是什么,求例子
第一个,
int a[10];
这里的10就是常量。
第二个 用变量
int n=10;
int a[n];
很多编译器会不支持。
第三个
int *a;
a=(int *)malloc(sizeof(int)*10);
使用后,要对a做free(a);
B. js中json数组问题,怎么创建json数组
普通的数组格式是:['a','b','c']
JSON的格式是:{'1':'a','2':'b','3':'c'}
所以把数组循环一下就可以了;
var a = ['a','b','c'];var json = {};for(var i=0;i<a.length;i++){ json[i]=a[i];}JSON.stringify(json); //结果:{'1':'a','2':'b','3':'c'}
C. 怎么把把 json 转换成数组
有两种方法实现:
(1)直接转换:
创建JSONArray对象、JSONObject对象,通过put方法将其数据以键值对的形式填充,如例:
//假如有一个Java实体类Person,包括以下属性:phone、sex、married、address。
ArrayList<Person> persons = new ArrayList<Person>();
for (int i = 0; i < 3; i++) {
persons.add(new Person("138******67", "女", true, "北京朝阳区"));//填充Java实体类集合
}
JSONArray array = new JSONArray();// Json格式的数组形式
JSONObject obj;//json格式的单个对象形式
for (int i = 0; i < persons.size(); i++) {
obj = new JSONObject();
//依次填充每一个Java实体对象
try {
obj.put("phone", persons.get(i).getPhone());//json通过put方式以key-value形式填充
obj.put("sex", persons.get(i).getSex());
obj.put("married", persons.get(i).getMarried());
obj.put("address", persons.get(i).getAddress());
array.put(obj);//将JSONObject添加入JSONArray
} catch (JSONException e) {
e.printStackTrace();
}
}
(2)通过GSON工具实现:
只需要创建GSON对象,通过toJson方法转换即可。如例:
//模拟Java数据
Person person = new Person("敏敏", 23, "女", "北京市海淀区");
//创建GSON对象
Gson gson = new Gson();
//调用toJson方法即可转换为字符串的json格式
String json = gson.toJson(person);
D. c语言或c++如何自由创建数组
%其实C++是不容许用变量来定义数组的,例如:int m;cin>>m; int a[m];这样是不行的。但是我们可以换一种思路。你看看这样,我们可以先申请的变量a,再用new运算符来建立临时数组。这样问题就解决了。用这个方法来解决上面你提到的两个问题(假设你向a中输入5),看代码:第一个问题, int a; cin>>a; int *p=new int[a]; 第二个问题,int a;cin>>a;int *p=new int[a*(a-1)]; 这样就可通过指针p来访问数组中的值了。%
E. C语言新建一个数组的语法
数据类型
数组名[维数]
如:int
a[5];定义了一个长度为5的一维数据
F. c语言结构数组,如何创建外部数组和静态数组
外部变量就是引用外部文件的变量(非静态)
静态变量与全局变量相似,区别是静态变量只能在定义的函数内被调用。
静态变量与局部变量区别:静态变量不会自动释放,函数调用结束后,值依然保留。静态变量定义时赋初值,只有一次,多次调用函数,不会反复赋初值。如果没有初值,静态变量也会自动赋初值。
关于数组定义在栈中维度大小受限,想要定义在堆中,可以用malloc申请。
详细看我写的案例备注吧。
//externFile.c文件
#include<stdio.h>
structbook2
{
intid;
};
structbook3
{
intid;
};
structbook2bk2;
staticstructbook3bk3;//b3是静态全局变量,无法通过extern被外部调用
G. C语言如何创建数组
动态数组:void creat(linklist &L)
{
int x;
L=new Lnode;
linklist p,u;
p=L;
cout<<"请输入一些有序的整数,以负数结束:"<<endl;
cout<<"请输入一个整数:"<<endl;
cin>>x;
while(x>0)
{u=new Lnode;
u->data=x;
p->next=u;
p=p->next;
cin>>x;
}
p->next=NULL;
} 静态数组:int iArray[10]={1,1,2,3,5,8,13,21,34,55); //初始化
void main()
{
//...
}
H. 怎么用C语言获取JSON中的数据
用C语言获取JSON中的数据的方法是使用 CJSON。
以下简单介绍用CJSON的思路及实现:
1)创建json,从json中获取数据。
#nclude <stdio.h>
#include "cJSON.h"
char * makeJson()
{
cJSON * pJsonRoot = NULL;
pJsonRoot = cJSON_CreateObject();
if(NULL == pJsonRoot)
{
//error happend here
return NULL;
}
cJSON_AddStringToObject(pJsonRoot, "hello", "hello world");
cJSON_AddNumberToObject(pJsonRoot, "number", 10010);
cJSON_AddBoolToObject(pJsonRoot, "bool", 1);
cJSON * pSubJson = NULL;
pSubJson = cJSON_CreateObject();
if(NULL == pSubJson)
{
// create object faild, exit
cJSON_Delete(pJsonRoot);
return NULL;
}
cJSON_AddStringToObject(pSubJson, "subjsonobj", "a sub json string");
cJSON_AddItemToObject(pJsonRoot, "subobj", pSubJson);
char * p = cJSON_Print(pJsonRoot);
// else use :
// char * p = cJSON_PrintUnformatted(pJsonRoot);
if(NULL == p)
{
//convert json list to string faild, exit
//because sub json pSubJson han been add to pJsonRoot, so just delete pJsonRoot, if you also delete pSubJson, it will coremp, and error is : double free
cJSON_Delete(pJsonRoot);
return NULL;
}
//free(p);
cJSON_Delete(pJsonRoot);
return p;
}
void parseJson(char * pMsg)
{
if(NULL == pMsg)
{
return;
}
cJSON * pJson = cJSON_Parse(pMsg);
if(NULL == pJson)
{
// parse faild, return
return ;
}
// get string from json
cJSON * pSub = cJSON_GetObjectItem(pJson, "hello");
if(NULL == pSub)
{
//get object named "hello" faild
}
printf("obj_1 : %s
", pSub->valuestring);
// get number from json
pSub = cJSON_GetObjectItem(pJson, "number");
if(NULL == pSub)
{
//get number from json faild
}
printf("obj_2 : %d
", pSub->valueint);
// get bool from json
pSub = cJSON_GetObjectItem(pJson, "bool");
if(NULL == pSub)
{
// get bool from json faild
}
printf("obj_3 : %d
", pSub->valueint);
// get sub object
pSub = cJSON_GetObjectItem(pJson, "subobj");
if(NULL == pSub)
{
// get sub object faild
}
cJSON * pSubSub = cJSON_GetObjectItem(pSub, "subjsonobj");
if(NULL == pSubSub)
{
// get object from subject object faild
}
printf("sub_obj_1 : %s
", pSubSub->valuestring);
cJSON_Delete(pJson);
}
int main()
{
char * p = makeJson();
if(NULL == p)
{
return 0;
}
printf("%s ", p);
parseJson(p);
free(p);//这里不要忘记释放内存,cJSON_Print()函数或者cJSON_PrintUnformatted()产生的内存,使用free(char *)进行释放
return 0;
}
2)创建json数组和解析json数组
//创建数组,数组值是另一个JSON的item,这里使用数字作为演示
char * makeArray(int iSize)
{
cJSON * root = cJSON_CreateArray();
if(NULL == root)
{
printf("create json array faild ");
return NULL;
}
int i = 0;
for(i = 0; i < iSize; i++)
{
cJSON_AddNumberToObject(root, "hehe", i);
}
char * out = cJSON_Print(root);
cJSON_Delete(root);
return out;
}
//解析刚刚的CJSON数组
void parseArray(char * pJson)
{
if(NULL == pJson)
{
return ;
}
cJSON * root = NULL;
if((root = cJSON_Parse(pJson)) == NULL)
{
return ;
}
int iSize = cJSON_GetArraySize(root);
for(int iCnt = 0; iCnt < iSize; iCnt++)
{
cJSON * pSub = cJSON_GetArrayItem(root, iCnt);
if(NULL == pSub)
{
continue;
}
int iValue = pSub->valueint;
printf("value[%2d] : [%d] ", iCnt, iValue);
}
cJSON_Delete(root);
return;
}
I. 关于C语言数组的创建
两种方法:
转化为一维数组申请
先申请全部行首指针,再按行逐行申请
1、方法一:
a=(int*)malloc(sizeof(int),(unsigned)m*n);
使用的时候就和一般的二维数组一样。
举个例子给你:
#include"stdlib.h"
#include"stdio.h"
#include<malloc.h>
intmain()
{
inti,j;
intn;//这个就是需要指定的行数
int(*p)[10];
scanf("%d",&n);//取得行数
//动态生成二维数组,指定列数为10,如果想改,自己该里面
的参数,如果想定义n行2列就为:p=(int(*)[2])malloc(n*2*sizeof(int));
p=(int(*)[10])malloc(n*10*sizeof(int));//动态申请n行10列的二维数组
for(i=0;i<n;i++)
for(j=0;j<10;j++)
p[i][j]=i*j;
for(i=0;i<n;i++)
{
for(j=0;j<10;j++)
printf("%d,",p[i][j]);
printf(" ");
}
free(p);
return0;
}
2、方法二:
#include<stdio.h>
#include<malloc.h>
main()
{
inti=0;
intj=0;
intline=0;
introw=0;
int**p=NULL;
printf("inputthelineofthearray: ");
scanf("%d",&line);
printf("inputtherowofthearray: ");
scanf("%d",&row);
p=(int**)malloc(sizeof(int*)*line);
if(NULL==p)
{
return;
}
for(i=0;i<line;i++)
{
*(p+i)=(int*)malloc(sizeof(int)*row);
if(NULL==*(p+i))
{
return;
}
}
/*inputdata*/
for(i=0;i<line;i++)
{
for(j=0;j<row;j++)
{
p[i][j]=i+1;
}
}
/*outputdata*/
for(i=0;i<line;i++)
{
for(j=0;j<row;j++)
{
printf("%d",p[i][j]);
}
}
/*freeeverylinepoint*/
for(i=0;i<line;i++)
{
free(*(p+i));
p[i]=NULL;
}
free(p);
p=NULL;
}
J. C语言创建一个数组
定义一个指针,将数据的第一个赋给头指针,例如:int *p;*p=a;p++;*p=b;以此类推,等等: