- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机程序设计实训习题课(一).ppt
计算机程序设计实训习题课(一) 2.C-字符串 C-字符串 字符数组 一般数组 动态数组 C-字符串 容器 串结束标志 C-字符串操作 计算长度 复制、拼接、比较 …… 字符数组 数据类型为 char,unsigned char 的数组 作为数组操作与其他类型的数组类似 例如: 访问数组元素 输入数组元素、输出数组元素等 数组或元素在函数之间传递 堆字符数组 C-字符串 问题的提出 ——— 需求 字符串是程序中常用的构造数据类型(非基本数据类型) 字符串是一系列字符的集合 字符串的内容应该存放在字符数组中(即:字符数组是字符串的容器) 问题的提出 ——— 困难 数组(需要三要素)操作不便 解决方案 ——— 隐藏数组两要素 数据类型 (char或unsigned char) 数组名 显式使用此要素 元素个数 (规定一个特殊字符作为结束标志) C-字符串 C-字符串(简称字符串)是存放在字符数组中的一系列有序字符,并以特殊的控制字符’\0’(其ASCII值为0)作为字符串的结束标志。 字符’\0’被称为C-字符串的串结束标志。该字符兼容整数值0、布尔值“假”。 值得特别注意的是 需要事先定义一个元素个数“足够大”的字符数组,作为字符串的容器。 C-字符串 字符串常量 用双引号包围的一系列字符被称为字符串常量。字符串常量被存放在内存的全局数据区常量池里,并自动追加串结束标志。 字符串常量实际上是字符型常量数组,其首地址就用字符串字面常量本身表示。 char *str = ”I\’m a student.”; 定义指针变量str,占sizeof(void*)即4字节; 并用字符串常量数组名(用字符串常量本身表示的地址值)对str进行初始化;即str指向常量池中的某个地址值 C-字符串的操作 C++对C-字符串进行了多项适应性调整,以方便 字符串的操作。 创建字符串 (如下语句皆等价) char c[15] = {’I’, ’\’’, ’m’, ’ ’, ’a’, ’ ’,’s’,’t’,’u’,’d’,’e’,’n’,’t’,’.’,’\0’}; char c[15] = {73, 39, 109, 32, 97, 32, 115,116,117,100,101,110,116,46, 0}; char c[15] = ”I\’m a student.”; char c[] = ”I\’m a student.”; 字符串I/O操作 C++编译系统对字符型指针(地址值)的输入/输出适应性地调整为从给定的地址处起的操作 输入 scanf(%s, 地址); 从给定的地址处起,将键盘输入的字符依次顺序存放,并将输入结束标志(空格、或换行)自动转换成串结束标志字符存放 输出 printf(%s, 地址); 从给定的地址处起,依次顺序输出字符,直到遇到串结束标志为止。 例1. 一个有趣的英文单词 // smart.c #include stdio.h int main() { char *p, str[100] = ”smart”; for(p=str; *p!=’\0’; p++) // *p!=’\0’可简写为 *p printf(%s\n, p); printf(%d, p – str); return 0; } 取内容运算 指针移动 输出字符串 输出地址差:整数 运行结果 smart mart art rt t 5 对目标类型为非字符型的指针 无法“适应性”调整,因而 int a[100]; double *p = new double[100]; scanf(%d, a); // 语法错误,且a为地址常量 scanf(%d, p); // 语法错误,p虽然为变量 printf(%d, a);// 可行。但输出一个地址值 printf(%d, p);// 可行。但输出一个地址值 C-字符串处理函数 需要 #include string.h 字符串的长度 函数原型:int strlen(const char *str); 功能:计算并返回给定字符串的长度(不计串结束标志) 例如: ”” 空串,长度为0,占1字节内存,存放字符’\0’ ”?” 空格串,长度为1,占2字节内存,存放字符 空格字符’?’和’\0’(即32和0) ”3210” 长度为4,占用5个字节,分别存放字符’3’, ’2’,’1’,’0’,’\0’(即51, 50, 49, 48, 0) C-字符串处理函数 字符串复制 函数原型 char *strcpy(char *dest, const char *source); 功能 将源字符
文档评论(0)