C语言 如何把一个变量值赋给一个数组。
比如。定义了一个整型变量a,初始值为200,:inta;a=200;又定义了一个字符串数组charim[]={"hello"};现在我想把字符串里的hello换成变量a的...
比如。
定义了一个整型变量a,初始值为200,:
int a;
a=200;
又定义了一个字符串数组char im[]={"hello"};
现在我想把字符串里的hello换成变量a的值(也就是200),如何写代码??二者类型不同。是需要强制转换吧?? 展开
定义了一个整型变量a,初始值为200,:
int a;
a=200;
又定义了一个字符串数组char im[]={"hello"};
现在我想把字符串里的hello换成变量a的值(也就是200),如何写代码??二者类型不同。是需要强制转换吧?? 展开
10个回答
展开全部
这个朋友,你应该没有理解内存中他们是如何工作的。
首先,为了给你讲清楚。我,先讲一下,内存中他们是如何工作的。
一个int类型,例如你声明了 int a 是声明了一个变量a, 同时在内存中开辟了 int大小的内存空间你个int 是 4byte 而 char 只是1个 byte.所以,你从小到大转换,是可以的,无需cast就是强制转换,而反过来,你需要的,但是你要确定,没有超出其大小。而你的数组是hello 5个char 字符,就是5 byte.
这里讲的是2进制 存储结构
你的数组其实是 6个大小的数组 (最后多了个\0)所以
数组第一个是 h 第2个是e 以此类推。
你如果强行放200 进去的话,你说他放入那里呢?
上面朋友给你的代码,其实不是类型转换,而是使用C语言的一个方法把它转换了而已。
首先,为了给你讲清楚。我,先讲一下,内存中他们是如何工作的。
一个int类型,例如你声明了 int a 是声明了一个变量a, 同时在内存中开辟了 int大小的内存空间你个int 是 4byte 而 char 只是1个 byte.所以,你从小到大转换,是可以的,无需cast就是强制转换,而反过来,你需要的,但是你要确定,没有超出其大小。而你的数组是hello 5个char 字符,就是5 byte.
这里讲的是2进制 存储结构
你的数组其实是 6个大小的数组 (最后多了个\0)所以
数组第一个是 h 第2个是e 以此类推。
你如果强行放200 进去的话,你说他放入那里呢?
上面朋友给你的代码,其实不是类型转换,而是使用C语言的一个方法把它转换了而已。
展开全部
1.整型值赋值给整型数组:
int value=2;//定义一个变量,并赋值
int array[10];//定义一个数组
array[0]=value;//将变量值赋值给该数组。
2.整型值赋值给字符数组:
int value=3;
char str[10];
str[0]=value+'0';//赋值给单个字符
itoa(value,str,10);//数字转字符串函数itoa,10代表十进制。要包含头文件<stdio.h>
3.字符赋值给整型数组
char ch;
int array[10];
array[0]=atoi(ch);
仅举上例。
int value=2;//定义一个变量,并赋值
int array[10];//定义一个数组
array[0]=value;//将变量值赋值给该数组。
2.整型值赋值给字符数组:
int value=3;
char str[10];
str[0]=value+'0';//赋值给单个字符
itoa(value,str,10);//数字转字符串函数itoa,10代表十进制。要包含头文件<stdio.h>
3.字符赋值给整型数组
char ch;
int array[10];
array[0]=atoi(ch);
仅举上例。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先说明字符和自然数的关系字符一共有256个 0到9的自然数 有对应的字符所以可以强制转换为字符 但超过10就没有对应字符了 字符总共就这么几个 你现在的数组开辟了6个连续空间每个空间放了一个字符 最后一个是自动加的空字符 你现在想把一个 超过10的整数 变为字符 只能 把它拆开来 拆成字符 2 和0和 0 分别存放入这个数组的三个单元中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <memory.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int a;
a=200;
char im[]={"hello"};
memset(im, 0, strlen(im));
/* 将整数转换成字串 */
itoa(a, im, 10);
printf("%s\n", im);
return 0;
}
#include <stdlib.h>
#include <string.h>
int main()
{
int a;
a=200;
char im[]={"hello"};
memset(im, 0, strlen(im));
/* 将整数转换成字串 */
itoa(a, im, 10);
printf("%s\n", im);
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
呵呵.你可以使用一个函数名字叫sprintf
下面是我给你写的详细代码你可以参考下
#include <stdio.h>
int main()
{
int a=200;
char im[]={"hello"};
sprintf(im,"%d",a); //第一个参数是接受复制的char变量中间是格式化如果换成%c就是按照字符赋值.最后是赋值变量
printf("%s\n",im);
}
下面是我给你写的详细代码你可以参考下
#include <stdio.h>
int main()
{
int a=200;
char im[]={"hello"};
sprintf(im,"%d",a); //第一个参数是接受复制的char变量中间是格式化如果换成%c就是按照字符赋值.最后是赋值变量
printf("%s\n",im);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询