c语言课件10 Character String.ppt

c语言课件10 Character String

例10.5 :字符串复制—用字符指针编程 void MyStrcpy(char *dstStr, char *srcStr) { while (*srcStr != \0) { *dstStr = *srcStr; srcStr++; dstStr++; } *dstStr = \0; } H e l l o C h i n a \0 *srcStr *dstStr H e l l o C h i n a \0 *srcStr==\0 srcStr++ srcStr dstStr++ dstStr srcStr dstStr srcStr dstStr srcStr dstStr srcStr dstStr srcStr dstStr srcStr dstStr srcStr dstStr srcStr dstStr srcStr dstStr srcStr dstStr srcStr dstStr * 例10.6 :计算实际字符个数 unsigned int MyStrlen(char str[]) { int i; unsigned int len = 0; for (i=0; str[i]!=\0; i++) { len++; } return (len); } unsigned int MyStrlen(const char *pStr) { unsigned int len = 0; for (; *pStr!=\0; pStr++) { len++; } return (len); } 方法2:用字符指针实现 方法1:用字符数组实现 统计实际字符个数 (不含\0) * 10.7从函数返回字符指针 【例10.7】编程实现strcat()的功能 * 10.7从函数返回字符指针 【例10.7】编程实现strcat()的功能 * 10.7从函数返回字符指针 【例10.7】编程实现strcat()的功能 返回字符串首地址 * Questions and answers * 提问:可否使用ASCII码对字符数组进行初始化? 可以使用下标的方式来访问存放于字符数组中的每个字符。由于字符串的长度与字符数组的大小通常并不是完全一致,所以借助字符串结束标志‘\0’作为循环结束控制条件。 提问:str前为什么不加区地址符号()?%s表示将字符串作为一个整体输入/输出。 函数gets()用于从键盘读入一个字符串(包括空格符),并保存到括号内的参数所代表的存储单元去。函数puts()用于从括号内的参数给出的地址开始,依次输出存储单元中的字符,当遇到第一个’\0‘时输出结束,并且自动输出一个换行符。函数puts()不能像printf()函数那样在输出行中增加一些其他字符信息并控制输出的格式。 提问:程序运行的时候,需要在键盘上输入几次 “Yang Li-wei”? 所以在处理非法输入的时候,必须要清空缓存区。 使用函数scanf()和printf()输入字符串时,要确保输入字符串的长度不超过数组的大小,否则建议使用能够输入字符串长度的函数。程序第7行的作用是从标注输入stdin中读取一行长度为sizeof(name)的字符串送到name为首地址的缓存存储区中。标准输入一般值从键盘输入到缓冲区的东西。 提问:第7行语句中为何加入斜杠 字符串处理函数库提供了很多有用的函数,在使用之前,必须在程序的开头将头文件string.h包含到源文件中来。 函数strlen(str)返回字符串str的实际长度 赋值符号(=)只能用于基本数据类型之间的赋值 提问:程序第12行的作用是什么?程序第16行中的函数gets()中的参数是什么意思? 当计算机比较字符串时,实际比较的是字符串中字符的数字编码 提问:const char *pStr 的作用是什么?为防止原始数组元素的被调函数中被意外修改,可以使用类型限定符const. 为什么方法2中的for循环起始条件没写? 第10章 字符串 杨铭 信息学院 本章重点 ? 字符串常量 ? 字符串处理函数 ? 字符数组和字符指针 ? 向函数传递字符串 ? 从函数返回一个字符串指针 * 10.1字符串常量 用双引号括起的一串字符是字符串常量,C语言自动为其添加\0结束符 How are you H o w a r

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档