这一篇博客我们来了解一下字符串,看下面这个我们熟知的也是最先学习的代码
"Hello world!"
这一堆的字母就是字符串字面值,简称字符串,每一个字母都是一个字符,字符串需要用" "双引号来引起,字符需要用’ "单引号来引起,就像下面
"Hello world!" //字符串
"a" //字符
"!" //字符
字符串也算常量,上面三条都算字面常量,之前的讲常量的时候就举过这种例子
那么字符串有什么用呢?
假设我们要把下面的字符串存起来,那么我们需要怎么存呢?
"abcdef"
我们可以把它放在字符串数组里,有两种形式如下:
#includeint main() { char arr1[10]="abcdef"; //形式一 char arr2[10]={"a","b","c","d","e","f"}; //形式二 //我们打印一下这些字符串 printf("%s\n",arr1); printf("%s\n",arr2); return 0; }
运行的结果:
abcdef
abcdef
把"abcdef"都存在arr[ ]这个数组里面,[ ]里面数是多少,就能存多少字符
arr[10]可以存10个字符 ,但一定要不小于你要存的字符
你也可以不写[ ]里面的数字,它会自己根据你要存的字符串来调整,就像这样
#includeint main() { char arr[]="abcdef"; //char-字符类型,没有字符串类型哦 return 0; }
那这两种形式有什么区别呢?
我们不写arr[ ]里面的数字,我们来看一下
#includeint main() { char arr1[]="abcdef"; char arr2[]={"a","b","c","d","e","f"}; //我们打印一下这些字符串 printf("%s\n",arr1); printf("%s\n",arr2); return 0; }
运行的结果:
abcdef
abcdef烫烫烫烫烫abcdef
哎,发现没有,它们不一样了,那为什么会出现这种情况呢?
先想一个问题,它是根据什么来停止打印的?
(啊,你会问:它们后面啥都没有,我怎么会知道它们根据什么来停下来的)
那里确实看不见有什么标志,但是那个标志就是看不见的,字符串的结束标志是\0,它是一个我们马上就会学到的转义字符
char arr1[]="abcdef";
这个形式一,字符串后面就默认带了一个\0
char arr2[]={"a","b","c","d","e","f"};
这个形式二,后面没有\0
懂了吧,printf去打印的时候要识别到\0才会结束
第一个形式最后一个字符结束就识别到了\0,然后结束
第二个形式识别到最后的f,一直都没有识别到\0,就一直打印下去,最后就出现刚才的结果
那么如果我们给第二个形式加一个\0作为结束标志怎么样,不要光想,我们来做一下试试
#includeint main() { char arr1[]="abcdef\0"; //我们也试一下给它也加一个\0 char arr2[]={"a","b","c","d","e","f","\0"}; //我们打印一下这些字符串 printf("%s\n",arr1); //%s是打印字符串的 printf("%s\n",arr2); //%s是打印字符串的 return 0; }
运行的结果:
abcdef
abcdef
结果运行正常了
那么\0算不算里面的字符串长度的一部分呢?
又来介绍一个好东西,strlen,它可以计算一个字符串长度的函数,但是使用它还是跟以前一样,需要给另一个头文件string.h打一下招呼才能使用它,我们来实操一下:
#include#include int main() { char a[] = "abc"; char b[] = "abc\0"; printf("%d", strlen(a)); printf("%d", strlen(b)); return 0; }
运行结果:
3
3
"abc"
这个字符串的长度为3,所以我们可以知道看不见的\0并不算在长度里面的,就算在后面加上\0也是一样
大家可以试一试计算一下第二种形式不加\0情况下的字符串长度,保持好奇心,去自己尝试一下。
就这样,我们把"abcdef"这个数组储存起来了,那我们要使用里面的字符怎么办?我们还需要再了解一个知识:
调用arr里面字符,用arr[2]就可以调用c,用arr[0]就可以调用a,它们的对应关系也就是:
a b c d e f
0 1 2 3 4 5
我们来实验一下
#includeint main() { char arr[]="abcdef"; printf("%c",arr[2]); return 0; }
运行结果:
a
#includeint main() { char arr[]="abcdef"; printf("%c",arr[0]); return 0; }
运行结果:
a
到此这篇关于适合初学者的C语言字符串讲解的文章就介绍到这了,更多相关C语言 字符串内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
上一篇:适合初学者的C语言常量类型的讲解
下一篇:适合初学者的C语言转义字符讲解
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?