下载此文档

ACM@USC 第四讲 String.pptx


文档分类:IT计算机 | 页数:约30页 举报非法文档有奖
1/30
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/30 下载此文档
文档列表 文档介绍
******@USC
第四讲:字符串
徐华杰@ ZONE
何谓字符串?
字符串(Character String)
一串以’\0’结尾的字符在C语言中被看作字符串。
字符串常量是用一对双引号(””) 括起来的一串字符串,
C编译系统自动在其尾部添加’\0’来终结符。
【如:”China”,“1”】。
/* 字符数组: 每个元素都是字符类型的数组*/ char s[80] ;
字符串的存储——一维数组
字符串可以存放在一维字符数组中
char s[6] = {‘H’, ’a’, ’p’, ’p’, ’y’, ’\0’};
/* 字符串数组初始化:用字符串常量*/
char s[6] = {“Happy”};
char s[6] = “Happy”; /* 可以省略花括号*/
/* 数组长度>= 字符串的有效长度+ 1 */
不建议使用
必须是以’\0’结尾的字符数组,才能称之为字符串
字符串数组的存储——多维数组
字符串数组(n维)存放在多维字符数组(n+1维)中
char s[2][3][6] = { {“Hello”, “world”, “ACM”},
{“C”, “C++”, “Code”} };
int a[2][3] = { {123, 456, 789}, {100, 2000, 30000} };
/* 字符串数组初始化:用字符串常量*/
字符数组的声明建议都写明大小
关于字符串的输入&& 输出
char ch; char s[80]; /* include<> */
输入
输出
scanf(“%s”, s);
printf(“%s\n”, s);
ch = getchar();
putchar(ch);
gets( s );
puts( s );
sscanf(s,“%d”,&a);
sprintf(s,“%d”,a);
输入——从 scanf() 开始 I
大家”众所周知”: /* 例:scanf(”%c”, &ch); */
利用 scanf() 读入数据,变量必须加’&’(取地址符)
为何要加取地址符?
因为变量存储在计算机中的某处。如何找到该变量?
就需要知道该变量存放的位置(即为地址)
在变量标示符前加’&’即可获得变量地址。。。
输入——从 scanf() 开始 II
回忆上节课的内容, ……数组/* int a[10]; */
谁能告诉我 a 代表什么?
Answer: 数组 a 的首地址
也就是说:如果存储到 a 中,就可以不加”&”(不要加)
于是,对于字符串的存储为(利用 scanf() ):
char s[123]; scanf(“%s”, s);
字符数组名本身就是一个地址,不要加’&’
输入——从 scanf() 开始 III
/* scanf() 中的”%s”不能读入
’’(空格), ’\t’(制表), ’\n’(换行)这三种字符*/
在 scanf() 中利用“%s”读取字符串将:
%s : 从第一个可读入字符始,直到不能读入的字符终
(末尾自动添加’\0’)。
用法: char s[33]; scanf(“%s”, s);
scanf(“%s”, s); 不能读入’’, ’\t’, ’\n’
可读入空格—— gets() I
/* 使用 scanf() 读入字符串不能读入空格,也就是说:
当我想要存储一句话的时候,利用 scanf()
只能一个单词一个单词来读取。*/
想要读取一行字符,在 gets() :
gets():读到‘\n’时结束(把‘\n’换成’\0’)。
用法: char s[203]; gets( s );
gets( s ); 不能存入’\n’
可读入空格—— gets() II
/* scanf() 与 gets() 的差异*/
%s : 从第一个可读入字符开始,直到不能读入的字符终止
(末尾自动添加’\0’)。
gets():读到‘\n’时结束(把‘\n’换成’\0’)。
不仅仅是:
还有:
以及:
gets() 比 scanf() 能多读入2种字符( ‘‘,‘\t’)
gets() 实际上会读入‘\n’, 只不过读入后会转换成‘\0‘,
并终止读取操作
gets() 不会进行判断,请看二者定义(自己写的)

ACM@USC 第四讲 String 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数30
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小839 KB
  • 时间2017-12-31