重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
//
创新互联网站建设公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!专注中小微企业官网定制,网站建设、成都网站建设,塑造企业网络形象打造互联网企业效应。
string[500]="abcdefg";
//是将字符串"abcdef"赋值给字符数组中string[500]这个元素,先不说string[500]已经越界了.
单单是string[500]只能存放一个字符,但你这里却要将一串字符串赋值给他.当然会错误.
像你说的在定义时初始化是对的.
如果定义后要进行赋值.就用string.h中的strcpy()函数,将"abcdefg"复制到字符串string中.
代码如下:
#include
stdio.h
#include
string.h
int
main()
{
char
string[500];
//
string[500]="abcdefg";
strcpy(string,"abcdefg");
//将字符串常量赋值给字符数组
return
0;
}
标准C中没有字符串变量这一说法,其存储字符串是用字符数组。
#include
stdio.h
#include
string.h
int
main(){
char
p[30];
strcpy(p,"hello");
//用这个函数可以给字符数组赋值。
printf("%s",p);
}
在C语言中,字符串的赋值主要有两种方法,第一种是通过指针的方式直接赋值,第二种是通过数组直接赋值。
1、指针式赋值。
通过程序的运行情况,可以知道:char *p = "hello";这种字符串的赋值方式是完全没有问题的。要理解这种赋值方式,首先得理解双引号(特别注意:这个是双引号,不要赋值的时候给弄了个单引号)在这个语句中做了什么工作。双引号主要做了3个工作,分别是:
(1)申请了空间(在常量区),存放了字符串。
(2)在字符串尾加上了“\0”。
(3)返回地址。
这里所返回的地址就赋值给了char *类型的指针变量p。
2、通过字符数组直接把字符串赋值。程序如下:
扩展资料:
字符串赋值需要注意的一些问题:
直接把字符串赋值给数组名(也就是数组首元素的首地址)是不行的。
会出现以下错误:
参考资料:
百度百科--字符串赋值
你要搞清一个事
char
a='b',有‘’(表示赋值的值是字符型的),所以是把字符b赋给a,char
a=
66,没有‘’,所以是把66赋给a,但是a是字符型的,所以把66转换为字符型输出(即字符B)
char
c=0x41;(16进制)
char
c=65;
(十进制)
char
c=o101;(8进制)
上面三个实际上是发生了转换
需要准备的材料分别有:电脑、C语言编译器。
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。
2、在test.cpp文件中,输入C语言代码:char a[20];strcpy(a, "hello");printf("%s", a);。
3、编译器运行test.cpp文件,此时成功将字符串赋值给了字符串a并打印。
可以使用memset函数将字符串数组中所有元素全部设置为\0即可。
函数原型:void
*memset(void
*s,
int
ch,
size_t
n);
函数说明:将s中前n个字节
(typedef
unsigned
int
size_t
)用
ch
替换并返回
s
。
示例:
#include
stdio.h
#include
string.h
int
main()
{
char
buf[256]
=
"hello
world";
//buf字符数组初始化
printf("%d\n",
strlen(buf));
memset(buf,
0x00,
sizeof
(char)
*
256);
//全部设置为0x00即\0字符
printf("%d\n",
strlen(buf));
return
0;
}