C语言中怎么字符串赋值?

Python015

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

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

2、在test.cpp文件中,输入C语言代码:char a[20]strcpy(a, "hello")printf("%s", a)。

3、编译器运行test.cpp文件,此时成功将字符赋值给了字符串a并打印。

第一种写法,等同于char a[10] = {"abc"}

第一种写法,用一个字符串赋值,实际上保存了4个字节(包含字符串结束符)。

第二种写法,只赋值了三个字节。

1、char c[5]

c[0]=’H’c[1]=’e’c[2]=’l’c[3]=’l’c[4]=’o’

2、charc[5]={‘H’,’e’,’l’,’l’,’o’}

3、(1)如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预测的;

(2)如果花括号中提供的初值个数(即字符个数)大于数组长度,则按语法错误处理;

(3)如果花括号中提供的初值个数(即字符个数)小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(即‘\0’)

4、(如何将字符串赋值给字符数组)

C语言中,将字符串作为字符数组来处理的。C语言规定了一个“字符串结束标志”,以字符’\0’作为标志。为此,再对字符数组初始化的方法补充一种用字符串常量来使字符数组初始化方法:

char c[] = {“Hello”}

或 char c[] =“Hello” 注意:数组c的长度不是5,而是6.

上面的初始化等价于:char c[5]={‘H’,’e’,’l’,’l’,’o’,’\0’}

而不等价于:charc[5]={‘H’,’e’,’l’,’l’,’o’}

5、字符数组的输出

char c[] ={“Hello”}

printf(“%s”,c)

6、(如何将字符串赋值给字符数组)

strcpy(字符数组1,字符串2)

eg: char str1[10]=’’, str2={“Hello”};

strcpy(str1,str2)

执行后str1状态为:

H

e

l

l

o

\0

\0

\0

\0

\0

(1)“字符数组1”必须写成数组名形式(如str1),“字符串2”可以是数组名,也可以是字符串常量。eg strcpy(str1, “Hello”)

(2)不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。如下面两句都是不合法的:str1=”Hello”

str1=str2

而只能用strcpy函数将一个字符串复制到另一个字符数组中去,赋值语句只能将一个字符赋给一个字符型变量或者字符数组元素。如下面的语句是合法的:

char c[5],c1,c2

c1=’A’c2=’B’

c[0]=’H’c[1]=’e’c[2]=’l’c[3]=’l’c[4]=’o’

7、strlen函数是测试字符串实际长度(不包含‘\0’在内)的函数。

char c[10]=”Hello”’

printf(“%d”,strlen(c))或者Printf(“%d”,“Hello”) 输出为5

//

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

}