C语言_给字符数组赋值的方法 c语言数组赋值
char a[10];
怎么给这个数组赋值呢?
1、定义的时候直接用字符串赋值
char a[10]="hello";
注意:不能先定义再给它赋值,如char a[10];a[10]="hello";这样是错误的!
2、对数组中字符逐个赋值
char a[10]={'h','e','l','l','o'};
3、利用strcpy
char a[10]; strcpy(a, "hello");易错情况:
1、char a[10];a[10]="hello";//一个字符怎么能容纳一个字符串?况且a[10]也是不存在的!
2、char a[10];a="hello";//这种情况容易出现,a虽然是指针,但是它已经指向在堆栈中分配的10个字符空间,现在这个情况a又指向数据区中的hello常量,这里的指针a出现混乱,不允许!
3、补充一点 char *a;a="hello";//这种情况是正确的。
还有:不能使用关系运算符“==”来比较两个字符串,只能用strcmp() 函数来处理。
C语言的运算符根本无法操作字符串。在C语言中把字符串当作数组来处理,因此,对字符串的限制方式和对数组的一样,特别是,它们都不能用C语言的运算符进行复制和比较操作。
直接尝试对字符串进行复制或比较操作会失败。例如,假定str1和str2有如下声明:char str1[10], str2[10];利用=运算符来把字符串复制到字符数组中是不可能的:str1 ="abc";str2 =str1;C语言把这些语句解释为一个指针与另一个指针之间的(非法的)赋值运算。但是,使用=初始化字符数组是合法的:char str1[10] = "abc";这是因为在声明中,=不是赋值运算符。试图使用关系运算符或判等运算符来比较字符串是合法的,但不会产生预期的结果:if (str1==str2)...这条语句把str1和str2作为指针来进行比较,而不是比较两个数组的内容。因为str1和str2有不同的地址,所以表达式str1 ==str2的值一定为0。
今天同学就问了一个这么简单的问题,我就是出错了,尴尬呀
更多阅读
去疤痕最好的方法组图 去除疤痕最好的方法
对于深受疤痕困扰的爱美女性来说,最想听到的恐怕就是怎样去除疤痕了。原本净白无暇的美肌因种种外因而给疤痕创造了“温床”,当真让不少美眉痛苦难耐。疤痕的存在,不仅摧毁了美丽的天空,也让自信心的摩天大厦瞬间倒塌。怎样去除疤痕,重现
给手机贴膜的方法 钢化膜怎么贴
给手机贴膜的方法——简介 选购手机贴膜,除了看其材质外,还要了解贴膜的耐磨度、透光度和粘性。 耐磨度:手机贴膜是用于保护屏幕的,因此自身的耐磨程度一定要高。特别是对于一些手写输入的手机,贴膜的耐磨程度就更重要了。一般而言,耐磨
怎么在家赚钱_在家赚钱的方法和技巧 在家赚钱的十种方法
怎么在家赚钱_在家赚钱的方法和技巧——简介很多网友都比较有赚钱的意识,尤其是现在的一些大学生寒假在家除了学习也会选择一些网上赚钱的项目来做一做赚钱补习费也很不错。学会在家赚钱也可以解决一些待业人员的就业问题,本经验分享
两种给翼支付账户充值方法简单上手 翼支付公交卡充值
两种给翼支付账户充值方法简单上手——简介琳琅满目的支付工具,不知道大家都喜欢用什么支付工具,反正小编用着最顺手的就是翼支付啦,我今天给大家分享一下用两种不同的方法给翼支付进行充值,这两种方法都是小编经常用的。两种给翼支付
网上给中石化加油卡充值 中石化加油卡微信充值
网上给中石化加油卡充值——简介现在很多加油站在加油时都得排队,而刷卡的一般排队的人少,在加油站办好加油卡,自己在网上充值,然后到加油站自己加油,也很方便,下面分享一下方法。网上给中石化加油卡充值——工具/原料