1、12 字符串处理字符串处理 程序设计基础 2 home back first prev next last 本节目标本节目标 字符串字符串 字符串操作字符串操作 取子串取子串 颠倒字符串颠倒字符串 查找子串查找子串 替换子串替换子串 串连字符串串连字符串 3 home back first prev next last 字符串字符串 4-1 字符串或串字符串或串(String)是由零个或多个字符组成是由零个或多个字符组成 的有限序列的有限序列 通常以串的整体作为操作对象,如:在串中通常以串的整体作为操作对象,如:在串中 查找某个子串、求取一个子串、在串的某个查找某个子串、求取一个子串、在串的某
2、个 位置上插入一个子串以及删除一个子串等位置上插入一个子串以及删除一个子串等 两个字符串相等的充要条件是:长度相等,两个字符串相等的充要条件是:长度相等, 并且各个对应位置上的字符都相等。并且各个对应位置上的字符都相等。 设设p、q是两个串,求是两个串,求q在在p中首次出现的位置中首次出现的位置 的运算叫做模式匹配。的运算叫做模式匹配。 4 home back first prev next last 字符串字符串 4-2 字符串运算字符串运算 1. 连接运算。也称为串连或字符串相加连接运算。也称为串连或字符串相加 ,例:,例: 11+aa=11aa; 2. 求子串。求子串。 从字符串从字符串
3、abdag,中截取第中截取第2个字符个字符 开始后的长度为开始后的长度为3的子串结果为的子串结果为 bda 3. 删除子串。从字符串删除子串。从字符串abcde中删除第中删除第2个字个字 符开始后的长度为符开始后的长度为3的子串,结果为的子串,结果为 ae 5 home back first prev next last 字符串字符串 4-3 字符串运算字符串运算 4. 插入子串。插入子串。 过程过程Insert(s1,s2,I) 把把12插入插入 到到abc的第的第2个位置,结果为个位置,结果为 a12bc 5. 求字符串长度求字符串长度 length。例:。例:length(12abc)=
4、5 6. 搜索子串的位置。如果搜索子串的位置。如果s1是是s2的子串的子串 ,则返,则返 回回s1的第一个字符在的第一个字符在s2中的位置,若不是子串,中的位置,若不是子串, 则返回则返回0。例:。例:position(ab,12abcd)=3 6 home back first prev next last 字符串字符串 4-4 字符串运算字符串运算 7. 字符的大写转换。例:字符的大写转换。例: a 转为大写为转为大写为 A 8. 数值转换为数串。如数值转换为数串。如 12345 转换为转换为 12345 9. 数串转换为数值。数串转换为数值。 如如 1234 转换为转换为 1234 Sc
5、ratch 支持的字符串操作支持的字符串操作 连接连接 取指定位置字符取指定位置字符 求字符串长度求字符串长度 7 home back first prev next last 练习练习 5-1 取子串取子串 提示用户输入字符串提示用户输入字符串 提示用户输入子串起始位置提示用户输入子串起始位置 提示用户输入子串长度提示用户输入子串长度 显示所取得的子串显示所取得的子串 8 home back first prev next last 练习练习 5-2 颠倒字符串颠倒字符串 提示用户输入字符串提示用户输入字符串 反转后显示,例如用户输入反转后显示,例如用户输入 Hello,反转后显示,反转后显
6、示 olleH 9 home back first prev next last 练习练习 5-3 查找子串查找子串 从第从第s个字符开始,查找字符串个字符开始,查找字符串string中,子串中,子串substring 第第n次出现的位置。如果没有找到子串,返回次出现的位置。如果没有找到子串,返回0 替换子串替换子串 从第从第s个字符开始,查找字符串个字符开始,查找字符串string中,子串中,子串src_string 是否存在。如果存在,将其替换为字符串是否存在。如果存在,将其替换为字符串dest_string 拼接字符串拼接字符串 重复重复10次,依次输出:这是第次,依次输出:这是第1个数
7、字!这是第个数字!这是第2个数个数 字!字!这是第这是第10个数字!个数字! 提示:用变量表示提示:用变量表示 1 2 310,将变量和“这是第”、,将变量和“这是第”、 “个数字”拼接成一个字符串。“个数字”拼接成一个字符串。 10 home back first prev next last 练习练习 5-4 “回文数回文数“是一种数字,其特点是正读倒读一是一种数字,其特点是正读倒读一 样。如样。如: 98789, 正读是正读是98789,倒读也是倒读也是98789 判断用户输入的数字是否为回文数判断用户输入的数字是否为回文数 将用户输入的数字当作字符串。然后将字符串将用户输入的数字当作字符串。然后将字符串 的每个字符从头到尾依次取出来,然后从后到的每个字符从头到尾依次取出来,然后从后到 前再拼成一个新的字符串,如果两个字符串相前再拼成一个新的字符串,如果两个字符串相 同,则用户输入的数字为回文数。同,则用户输入的数字为回文数。 11 home back first prev next last 练习练习 5-5 12 home back first prev next last 总结总结 字符串字符串 字符串操作字符串操作 取子串取子串 颠倒字符串颠倒字符串 查找子串查找子串 替换子串替换子串 串连字符串串连字符串