怎么进行字符串赋值?C语言

Python055

怎么进行字符串赋值?C语言,第1张

在C语言中,字符串赋值主要有两种方法,第一种是通过指针的方式直接赋值,第二种是通过数组直接赋值。

1、指针式赋值。

通过程序的运行情况,可以知道:char *p = "hello"这种字符串的赋值方式是完全没有问题的。要理解这种赋值方式,首先得理解双引号(特别注意:这个是双引号,不要赋值的时候给弄了个单引号)在这个语句中做了什么工作。双引号主要做了3个工作,分别是:

(1)申请了空间(在常量区),存放了字符串。

(2)在字符串尾加上了“\0”。

(3)返回地址。

这里所返回的地址就赋值给了char *类型的指针变量p。

2、通过字符数组直接把字符串赋值。程序如下:

扩展资料:

字符串赋值需要注意的一些问题:

直接把字符串赋值给数组名(也就是数组首元素的首地址)是不行的。

会出现以下错误:

参考资料:

百度百科--字符串赋值

//

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

}