首页 > 编程知识 正文

字符型变量赋值的几种,字符串初始化赋值

时间:2023-05-03 14:11:05 阅读:21196 作者:1462

可见,字符串char*p='helo '的分配方式完全没有问题。 要理解这种赋值方法,首先必须了解双引号(特别注意:这是双引号,分配值时不要加单引号)在此语句中执行了什么操作。 双引号主要做了三项工作。 各不相同

)1)申请空间(在常数区域),保存了字符串。

)2)在字符串的末尾加上了(0)。

)3)返回地

以下为转载:

我学了多年c语言,突然发现连字符串赋值都错了

char a[10];

怎么给这个数组赋值?

1、定义时直接用字符串赋值

char a[10]=“hello”

注:不能在分配值之前进行定义,例如char a[10]。 a [ 10 ]=“hello”这是错误的!

2、给数组中的字符一个个赋值

chara [ 10 ]={‘h’、‘e’、‘l’、‘l’、‘o’};

3、使用strcpy

char a[10]; srcpy(a,“hello”

容易出错的情况:

1、char a[10]; a [ 10 ]=“hello”//一个字符能容纳字符串吗? 而且a[10]也不存在!

2、char a[10]; 在a=“晕圈”//的情况下出现easy,尽管a是指针,但它指向分配给堆栈的10个字符区域。 现在,这个情况a指向数据区域中的hello常数。 这里的指针a很混乱。 我不同意!

然后,不能使用关系运算符“==”比较两个字符串。 只能用strcmp ()函数处理。

在c语言中,字符串被视为字符数组。 因此,字符串有两种声明方式:字符数组和字符指针。

)1)初始化字符数组(直接逐个初始化字符数组)是为数组中的每个元素指定字符的最简单方法。

charstr[10]={‘I”,“a”,“m”,“,h”,“a”,“p”,“y”};

注:如果在大括号中指定的字符数大于数组的长度,则将其视为语法错误。 如果小于数组的长度,则只针对这些字符数组中的上一个元素,其馀元素自动为空字符“”。

)用字符串常量初始化字符数组:在c语言中,将字符串作为字符数组处理。 因此,可以使用字符串初始化字符数组。

char str[]={“I am happy”};

也可以省略大括号:

char str[]=“I am happy”;

但是,上述字符数组的整体赋值只能在字符数组初始化时使用,不能用于字符数组的赋值。 只能将一个字符数组赋值给该元素。 下面的赋值方法是错误的

char str[];

str=“I am happy”//错误,字符数组赋值只能按元素赋值

初始化字符数组也有两种方法。

1.char parr[]=“zifuchuanshuzu”;

等效于charr_test[]

2.charcharr_test[]={‘z”,“I”,“f”,“u”,“c”,“u”,“a”,“s”,“h”,“u”,

不等于charr[]

3.charcharr[]={‘z”、“I”、“f”、“u”、“c”、“h”、“u”、“a”、“s”、“h”、“z”

这个方法是错误的。 字符串必须以’ 0’结尾; 字符数组和字符指针初始化为整个字符串,并自动添加’ 0’。 对于字符数组,在用单个字符初始化或赋值时,请务必考虑终止符’ 0’。

)3)字符指针:在c语言中也可以使用字符指针存储字符串。

初始化字符指针:

char* str=“zifuchuanshuzu”

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。