怎么样将一个int型数存入到一个char型数组中
发送端强制转换类型发(char*),接收端也用(char*)接,然后再将报头拷贝出来
int *phead = new int;
int head = *(int *)memcpy(phead,recvBuf,sizeof(int));//报头占据前四个字节
delete phead.
例子如下:
b[0][0]=a+'0';这样就可以了,不过这样只使用于1位数的情况,因为ASCII码表里只有0-9的ASCII码,它们比正常的多‘0’的值,也就是48。
字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。
char str[10]={ 'I',' ','a','m','
',‘h','a','p','p','y'};
即把10个字符分别赋给str[0]到str[9]10个元素
如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即
'\0' )。
int型是四个字节大小,char 型是一个字节。
所以int型赋值给char数组需要把int型拆分。
int型拆分成四个字节,按顺序保存在char型数组中就可以了。
具体代码如下:
int i =4;
char a[100];
for(int j=0;j<sizeof(int);j++)
{
a[j]=((i>>(8*j))&0xff);
}
其中int型的值4就保存在了char型的数组a中了。
char c[8]; // char型数组
int num; // int型数
num=563478; // 预先赋值,根据需要自己改
int i;
char *ptr = (char *)#
for (i=0;i<sizeof(int);i++) c[i] = ptr[i];
怎么样将一个int型数存入到一个char型数组中
char c[8]; \/\/ char型数组int num; \/\/ int型数num=563478; \/\/ 预先赋值,根据需要自己改int i;char *ptr = (char *)#for (i=0;i<sizeof(int);i++) c[i] = ptr[i];
c语言,如何将键盘输入的n个整数存入一个数组中,n的大小未知?
int *a, i = 0, num;printf("请输入数据,中间用空格间隔,用回车结束输入:\\n");a = (int *)malloc(1 * sizeof(int));if (a == NULL) { printf("内存分配失败\\n");return 1;} while (scanf("%d", &num) == 1) { a[i] = num;i++;if (i == 100) { a = (int ...
c语言把一个正整数的每位数存到数组中
i++;这两句可以写成一句话 a[i++]=n%10;printf("%d \\n",a[i]);主要是这句错了,因为i没有变,加一个for循环 但是打印出来时反序的 但是用这个更好一些 while(i--)printf("%d \\n",a[i]);
c语言,如何将键盘输入的n个整数存入一个数组中,n的大小未知
1、可以预先定义足够大的数组(浪费在所难免),然后将键盘输入的整数存入数组,并累计数据个数。...int i,n = 0,a[1024]while(1) { printf("输入整数(q: 结束输入过程)%d : ", n + 1);if(scanf("",&a[n]) != 1) break;++n;} for(i = 0; i < n; ++i) printf("%d ",a...
C语言中,如何把几个数组的值保存到一个数组里
这里我假设就是boolhanshu(int);再定义一个足够大的数组.例如inta[1000];intn=0;\/\/这个n用来表示数组下标的 for(inti=1;i<100000;i++)\/\/这个范围你自己定义。{ if(hanshu(i)){ a[n++]=i;\/\/将水仙花数保存在数组中 } } 这样就ok了,然后水仙花数就保存在a数组中了 ...
C语言 如何把一个变量值赋给一个数组。
一个int类型,例如你声明了 int a 是声明了一个变量a, 同时在内存中开辟了 int大小的内存空间你个int 是 4byte 而 char 只是1个 byte.所以,你从小到大转换,是可以的,无需cast就是强制转换,而反过来,你需要的,但是你要确定,没有超出其大小。而你的数组是hello 5个char 字符,就是5 byt...
C语言中怎么把一堆int数据以16进制叠加到某个数据流的后面。
char Result[8];memset(Result,0,512);int a = 110;int b = 70;sprintf(Result,"%s%c%c",ARR,a,b);应该符合你的要求。楼主的BUF应该是\\0结尾的。不多说了 不能用%x格式化,100%不是你要的结果,%x是4字节16进制整形,往里面写8个Char?只能强制转换了。节省了缓冲区大小并保证了结果...
c语言中如何把输入的数放到一个变量中
include "stdio.h"int main(int argc,char *argv[]){int a,x,i;for(a=i=0;i<4;i++){scanf("%d",&x);printf("a = %d\\n",a=a*10+x);}return 0;}运行样例:
C语言中如何将未知个数的数存放在一个数组中?
要实现未知个数的元素存储于数组中,可以使用malloc()和free()来进行动态内存分配 。下面是一个使用动态内存的示例:include <stdio.h>#include <malloc.h>#include <stdlib.h>#include <string.h>int main(){int size;printf("输入建立元素的个数:");scanf("%d",&size);int *p = (int *)...
c语言int型数据转char型数据,就是将一个int的高低两个字节分别转换成两...
\/\/定义两个长度为8位的变量 m=y>>8; \/\/将数据向右移动八位,那么高位的话就全部是0了,然后将一个INT类型的数据传递给一个Char类型的数据 n=y; \/\/直接将INT数据传递给char类型,这里将会发生数据丢失