大牛帮忙 char*转char数组

来源:百度知道 编辑:UC知道 时间:2024/09/13 00:51:39
char *s="hello"; char a[10]={"0"}; 我想把s的内容给a数组 怎么办到啊 (用c语言) a=*s 不行啊

楼主记住一句话:
在C语言中,如果已声明某变量如a为数组(比如你的char数组),则不能用=号给它赋值除了初始化之外!!!即除了初始化,再不能将数组放在=号左边!!!
比如楼主的题目中,只有变量a 是数组,像s, *s, *a, a+1, 等等都不能算数组.
若想对char数组另外赋值,可以用string.h标准库中的函数:strcpy ,或是自己将数组中的内容一一赋值.这两种方法可参看前两位的回答.

如果你想用赋值语句:
void main()
{
char *s="hello"; char a[10]={"0"};
int i;
for (i=0;i<strlen(s);i++) a[i]=s[i];
printf("%s\n",a);
}

因为 char *s="hello"; 就等于声明了s[]=="hello";

当然,最简单的办法是 strcpy(a,s); 就可以了。

#include<string.h>
int main()
{
char *s="hello";
char a[10]={"0"};
strcpy(a,s);//拷贝s字符串到a中,在string.h内定义的函数
return 0;
}