清华大学C语言程序设计 L13_字符串精选
计算机
程序设计基础
第13讲
字符串
陈来军(010)
chenlaijun@tsinghua.edu.cn
清华大学电机系
2015.12.16
主要内容
CONTENTS
1. 字符串若干知识点
2. 字符串输入输出及转换
3. 例子:成语接龙
4. 程序调试思路
计算机程序设计基础 2
1. 字符串若干知识点
• 知识点1:字符串常量
– 字符串常量:一对双引号括起来的字符序列。
• “Hello,World”
– C在每个字符串结尾处加上字符’\0’
• 作为字符串结束标志
• 作用:传递参数时,不用指明字符串长度
– 举例
• ”a” 包括两个字符:’a’, ’\0’
计算机程序设计基础 3
1. 字符串若干知识点
• 知识点2:字符串存储
–字符串采用字符数组来存储,以字
符’\0’作为结束标志。因此,字
符串是一种特殊的字符数组。
–求字符串长度时不包括’\0’.
计算机程序设计基础 4
1. 字符串若干知识点
• 例1
程序输出是?
sizeof(a)的结果是4, a是指向字符串常量的字符指针
sizeof(*a2)的结果是1, *a2是第一个字符
计算机程序设计基础 5
1. 字符串若干知识点
• 例2
char digit_to_hex_char(int digit)
{
return "0123456789ABCDEF"[digit];
}
思考:程序的作用是?
计算机程序设计基础 6
1. 字符串若干知识点
• 知识点3:汉字字符
– 一个汉字,2个字符
– 汉字数目很多,需要
用两个字节才能表示
– 从汉字所占宽度也能
看出
计算机程序设计基础 7
2. 字符串输入输出及转换
• 1. 相关函数
作用 函数
字符串输入 scanf, fscanf, gets, fgets
字符串输出 printf, fprintf, puts, fputs
从字符串转换 sscanf, atoi, atof
转换为字符串 sprintf
scanf系列,以读到空格视为字符串结束
gets系列,以读到回车符视为字符串结束
计算机程序设计基础 8
2. 字符串输入输出及转换
• 2. 从字符串转换
– sscanf函数
fs