05b_Array_and_String.ppt_第1页
05b_Array_and_String.ppt_第2页
05b_Array_and_String.ppt_第3页
05b_Array_and_String.ppt_第4页
05b_Array_and_String.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C string Howtostorethenameof124students defineNum Of Stu124 definesizeString100charname Num Of Stu sizeString 字符数组与C字符串 String 字符数组每个元素都是字符类型的数组charstring 80 字符串一串以 0 结尾的字符在C C 中被看作字符串charname 10 zhaowei 用双引号括起的一串字符是字符串常量 C语言自动为其添加 0 终结符C语言并没有为字符串提供任何专门的表示法 完全使用字符数组和字符指针来处理之 字符数组的初始化 用字符型数据对数组进行初始化charstr 6 C h i n a 0 用字符串常量直接对数组初始化charstr 6 China charstr 6 China 二维数组的输入和输出 通常 数组的输入和输出只能逐个对数组元素进行操作 defineROW SIZE10 defineCOL SIZE100intarr ROW SIZE COL SIZE 二维字符数组的输入和输出 字符数组则有专门的处理函数支持 defineROW SIZE10 defineCOL SIZE100charstr ROW SIZE COL SIZE 逐个输入输出for i 0 str i 0 i putchar str i putchar n str i getchar charstr 10 chararrayinput output 一次性输入输出scanf s str printf s str gets str puts str Cstringinput output scanf charstr 10 scanf s str scanf不能读入带空格的字符串属不安全输入当用户的输入多于10个 含10个 str数组将越界被公认为最易遭到黑客攻击的函数之一 Cstringinput output gets charstr 10 gets s 字符串输入函数gets 能读入带空格的字符串同样scanf一样 gets 没有提供限制输入字符串长度的方法 容易引起缓冲区溢出 给黑客攻击以可乘之机对输入字符串长度有限制的函数是fgets buf sizeof buf stdin sizeofbuf C stringinput output charname 11 cin name cout name charname 11 cin getline name 10 withlengthmonitoringcout name cin getline一次读取多个字符 包括空白字符 直到读满N 1个 或者遇到指定的结束符为止 默认为 0 字符串处理函数 在中定义了若干专门的字符串处理函数 cstringstrcpy stringcopychar strcpy char dest constchar src strlen stringlengthsize tstrlen constchar s 返回字符串的实际长度 不包括 0 strcat stringcombinationchar strcat char dest constchar src strcmp stringcomparisonintstrcmp constchar s1 constchar s2 出现第一对不相等的字符时 由这两个字符决定所在字符串的大小 LibraryFunctionsforWorkingwithC Strings strlen str returnslengthofC stringstrcharcity 20 Missoula cout strlen city prints8strcat str1 str2 appendsstr2totheendofstr1charcity 20 Boston charstate 3 MA strcat location state locationnowhas Boston MA strcpy str1 str2 copiesstr2tostr1charfname 20 Maureen name 20 strcpy name fname Note strcatandstrcpyperformnoboundscheckingtodetermineifthereisenoughspaceinreceivingcharacterarraytoholdthestringitisbeingassigned LibraryFunctionsforWorkingwithC Strings strstr str1 str2 findsthefirstoccurrenceofstr2instr1 Returnsapointertomatch orNULLifnomatch charriver 10 Wabash charword 5 aba cout strstr river word displays abash LibraryFunctionsforWorkingwithC Strings 0 作为字符串结束符的天生缺陷 若交给字符串处理函数的字符串没有 0 如何 这些函数会一直进行处理直到遇到一个 0 为止 此时可能已经把内存弄得乱七八糟ANSIC定义了一些 n族 字符处理函数 通过增加一个参数来限制处理的最大长度 包括strncpy strncat strncmp char strncpy char dest constchar src unsignedintcount String NumericConversionFunctionsheaderfile itoadoesnoboundschecking makesurethereisenoughspacetostoretheresult String NumericConversionFunctions intiNum longlNum floatfNum charintChar 10 iNum atoi 1234 puts1234iniNumlNum atol 5678 puts5678inlNumfNum atof 35 7 puts35 7infNumitoa iNum intChar 8 putsthestringofoctal 2322 base8fordecimal1234 inintChar include include defineARRA SIZE80main intn num charstr ARRA SIZE min ARRA SIZE printf Pleaseenterfivenames n gets str strcpy min str for n 1 n 5 n gets str if strcmp str min 0 strcpy min str printf Theminis puts min Whatisthecodefor Codingexercise 从键盘任意输入5个学生的姓名 编程输出按字典顺序排在最前面的学生姓名从键盘任意输入5个学生的姓名 编程按字典顺序输出学生的姓名WritingC StringHandlingFunctions DesigningC StringHandlingFunctions notethatitCanpassarraysorpointerstochararraysCanperformboundscheckingtoensureenoughspaceforresultsCananticipateunexpecteduserinput 向函数传递数组 传送的是指向数组的首地址被调函数操作中 应注意数组尺寸 防止越界访问 注意在声明二维数组形参时 不能省略数组第二维的长度 why defineCOURSE5 defineNUM100 intscore NUM COURSE e g voidTotal intscore COURSE intsum floataver intn inti j for j 0 j COURSE j sum j 0 for i 0 i n i sum j sum j score i j acumulation aver j float sum j n getaverage Summary 向函数传递一维数组和二维数组的方法用数组名作为函数参数和用简单变量作为函数参数的不同之处字符串 字符数组的各种处理针对一组数据的基本算法Sort inascendingordescendingorder Search extremums specifickey Insertanelementinanappropriateposition C strings includeFunctionofstringstringpassword secret Initialization assignment concatenation length stringindexing sub stringsStringreplace erase insertandemptystrings Stringsearching comparisonsStringinputandconversionsArraysofstringsEtc self learning Supplementary functionsonachar CharactertestingheaderfileFUNCTIONMEANINGisalphareturnstrueifarg isaletterisalnumreturnstrueifarg isaletterordigitisdigitreturnstrueifarg isadigit0 9islowerreturnstrueifarg isalowercaseletterisprintreturnstrueifarg isaprintablecharacterispunctreturnstrueifarg isapunctuationcharacterisupperreturnstrueifarg isanuppercaseletterisspacereturnstrueifarg isawhitespacecharacter e g Thisprogramdemonstratessomeofthecharactertestingmacros include includeusingnamespacestd intmain charinput cout Enteranycharacter cin get input if isalpha input cout That sanalphabeticcharacter n if isdigit inpu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论