字符串与字符数组
来源:互联网 发布:免费淘宝代理童装 编辑:程序博客网 时间:2024/05/13 01:23
一 . 使用带%s格式符的scanf函数读入字符串时,不需要再参数前加取地址符&。
原因:编译器会自动将数组名作为数组首地址来处理。
如:scanf("%s", str);
二 . 字符数组与字符串
(这两个概念其实现在我也不是很清楚),但看到的一句话可以帮助理解:在C语言中,将字符串当作字符数组处理。
字符数组的初始化:
char str[3] = {'a', 'b', 'c'}; char str[3] = {'a', 'b'}; ——剩余的元素值自动设为空字符'\0'。 怎样证明剩余的元素值自动设为了空字符呢? 我们可以输出它的ASCⅡ值: #include <stdio.h> int main() { int str[3] = {'a', 'b'}; printf("%d", str[2]); //因为数组是从str[0]开始记的 printf("\n"); return 0; } 由于刚开始在上面的那段代码中我输出用的,但运行时仍是0,这是不是说明了一个问题呢: 当C编译器在程序中遇到长度为n的字符串常量时,他会为这个字符串常量分配长度为n+1的字符数组空间,最后一个空间用于存储空字符'\0',用来标志字符串的结束。 但问题是,这并不是字符串啊,这是使用逐个字符列举的方式对字符数组进行初始化的!!!!![这是我分别改为输出str[3],str[4],str[5]的结果,每次改后执行了两次](http://img.blog.csdn.net/20171114163211919?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdDExMzgz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)![但如果我定义为char类型后,分别输出str[2]和str[3]又是这种情况](http://img.blog.csdn.net/20171114163603216?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdDExMzgz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)不清楚为什么会这样,现在还找不到答案!!
字符串(用字符串常量初始化字符数组):
char str[] = {"hello"}; char str[] = "hello";
强调:字符串用双引号”“,字符常量用单引号’ ’ 。
阅读全文
0 0
- 字符数组与字符串
- 字符数组与字符串(
- 字符串与字符数组
- 字符串与字符数组
- 字符串与字符数组
- 字符串与字符数组
- 字符串与字符数组
- 字符数组与字符串
- 字符数组与字符串
- 字符数组与字符串
- 字符串与字符数组
- 字符数组与字符串
- 字符数组与字符串
- 字符数组与字符串
- 字符数组 与 字符串
- 字符串与字符数组
- 字符数组与字符串
- 字符数组与字符串
- MySQL备份和恢复
- Android 图像识别之OCR识别身份证,银行卡等证件信息
- 微信小程序开发教程-微信小程序入门
- node复制文件
- 1173判断大小写字母
- 字符串与字符数组
- HDU 2923 Einbahnstrasse 【Floyd+map】
- 查看进程加载的so
- redis
- Python机器学习库sklearn几种分类算法建模可视化(实验)
- SQL高级语言查询
- logback学习笔记
- 用c语言输出1到100中的奇数
- 25.Nginx之HTTP入口