4个回答
展开全部
字符数组为内存中一段空间,可以在该空间中存储字符对象,char[]="aabc“即为在内存中存储了'a','a','b','c','\0'5个字符,如果要将该5个字符赋给其他变量的话,如果另一变量为char类型指针,可以使用strcpy()函数进行复制:
char* pstr;
strcpy(pstr,char);
如果另一变量为char类型数组,可以依次进行循环赋值:
char b[5];
for(size_t i=0;i<strlen(char);i++)
{
b[i]=char[i];
}
当然,数组名即为数组首字符的指针,所以第二种方法也可以采用strcpy()函数来完成!
char* pstr;
strcpy(pstr,char);
如果另一变量为char类型数组,可以依次进行循环赋值:
char b[5];
for(size_t i=0;i<strlen(char);i++)
{
b[i]=char[i];
}
当然,数组名即为数组首字符的指针,所以第二种方法也可以采用strcpy()函数来完成!
更多追问追答
追问
char[]="aabc",如果a的十六进制为0xaa,b是0xbb,我希望得到一个aabb的int,把他赋值给另一个int
追答
首先,“aabc"为一个字符型字符串,其在内存中按顺序存储,每个字符占据一位,存储的是各个字符的ASCII码,也即每个字符对应的ASCII码的二进制数,”97“”97“”98“”99“,你要将该字符串转化为int类型的变量(不太清楚这个动作的意图),可以将每个字符隐式转化为对应的ASCII码,转化后的ASCII为每个字符对应的十进制数,即:
int a=0;
a=char[0];
由于char[0]存储的是字符‘a',所以该转化后得到的是十进制数97,
然后依次转化,可以得到每个字符对应的十进制数
完成后按照你的意图确认是否相加...
展开全部
/*
那就用下标来循环。逐个元素赋值。
或者用strcpy函数和memcpy函数
*/
#include<stdio.h>
#include<string.h>
int main()
{
char a[]="abcd";
char b[10],c[10],d[10];
int i;
/*方法一,循环赋值*/
for(i=0;a[i]!='\0';i++)
{
b[i] = a[i];
}
b[i] = '\0';
/*方法二,复制字符串*/
strcpy(c,a);
/*方法二,复制内存*/
memcpy(d,a,sizeof(a));
/*输出测试 */
puts(a);
puts(b);
puts(c);
puts(d);
getchar();
return 0;
}
那就用下标来循环。逐个元素赋值。
或者用strcpy函数和memcpy函数
*/
#include<stdio.h>
#include<string.h>
int main()
{
char a[]="abcd";
char b[10],c[10],d[10];
int i;
/*方法一,循环赋值*/
for(i=0;a[i]!='\0';i++)
{
b[i] = a[i];
}
b[i] = '\0';
/*方法二,复制字符串*/
strcpy(c,a);
/*方法二,复制内存*/
memcpy(d,a,sizeof(a));
/*输出测试 */
puts(a);
puts(b);
puts(c);
puts(d);
getchar();
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int sum=sizeof(char);
sum就是char的值了
sum就是char的值了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-06-04
展开全部
某字符数组的值
是指什么值?
是指什么值?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询