计算机程序设计基础课件:字符串_第1页
计算机程序设计基础课件:字符串_第2页
计算机程序设计基础课件:字符串_第3页
计算机程序设计基础课件:字符串_第4页
计算机程序设计基础课件:字符串_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

字符串本章内容第一节字符数组第二节字符串的应用(1)第三节字符串类第四节字符串的应用(2)

第一节字符数组一、字符数组

数值数组用于存储数值类型(整数、浮点数等)的数据。

字符数组则用于存储字符型的数据,其数据元素是一个一个的字符。1、字符数组的定义

char字符数组名[常量表达式];例如:charc[6];

字符数组名为c,包含6个数组元素,即6个字符。2、字符数组的初始化char字符数组名[常量表达式]={字符1,字符2,字符3…,'\0'};例如:charc[5]={'v','s','c','+','+'}; //数组长度等于5字符数组的存储形式3、字符数组的赋值与引用逐个字符赋给数组中各元素。例如:

charc[5]; c[0]='v';c[1]='s';c[2]='c';c[3]='+';c[4]='+';二、用字符数组处理字符串1、字符串字符串是用一对双引号括起来的一组字符的有序集合,系统在字符串的末尾自动增加一个字符串结束符'\0'。考虑到字符串结束符,在定义字符数组时应估计实际字符串长度,保证数组长度始终大于字符串实际长度。char字符数组名[最大字符数+1];2、整体初始化字符数组存储字符串时,可以用字符串常量整体赋值,char字符数组名[常量表达式]=字符串;char字符数组名[常量表达式]={字符串};char字符数组名[]=字符串;char字符数组名[]={字符串};例如:charc[6]="vsc++"; //字符串结尾自动加'\0'charb[6]={"vsc++"}; //字符串外加{}chara[]="vsc++"; //数组长度可以不指定chard[]={"vsc++"};字符串的存储形式字符串与字符数组不是完全等价的3、整体输入输出(1)使用标准输入输出流cin和coutcin有一个问题:不能提取字符串中空格后面的内容。(2)使用gets_s()函数输入字符串gets_s(字符数组名);可以输入带有空格的字符串#include<iostream>usingnamespacestd;intmain(){ charc[30]; inti; gets_s(c); for(i=0;c[i]!='\0';i++) //不是结束符就继续遍历

cout<<c[i]<<""; //字符之间空格隔开

cout<<endl; //最后输出换行

return0;}例8-1输入字符串,再逐一输出字符串。三、字符串处理函数例如:

charc[20]="vsc++"; cout<<strlen(c); //字符长度为51、求字符串的长度strlen(str)求字符串str的有效字符个数,不包括'\0'在内。2、字符串赋值strcpy_s(str1,str2)将字符串str2赋值到字符串str1中。3、字符串连接strcat_s(str1,str2)在字符串str1后面连接字符串str2,字符串str2不变。#include<iostream>usingnamespacestd;intmain(){ chara[100]="ThiscoursewillhelpyoulearningC++basics"; charb[30]="anditgivesyouhands."; charc[100]; intslen1,slen2; slen1=strlen(a); //求字符串a长度

cout<<slen1<<endl; slen2=strlen(b); //求字符串b长度

cout<<slen2<<endl;

strcpy_s(c,a); //赋值字符串a到字符串c cout<<c<<endl; strcat_s(a,b); //在字符串a后面连接字符串b cout<<a<<endl; return0;}例8-2:字符串处理函数应用实例。第二节字符串的应用(1)程序设计中经常会处理字符串,例如统计字符串中的字符数;在字符串中查找单词;字符串加密;字符串大小写转换等。一、统计字符个数例8-3:从键盘输入一行字符(字符串长度不超过100),分别统计出其中英文字符、数字字符和其他字符的个数。#include<iostream>usingnamespacestd;intmain(){ charc[100]; inti,zf=0,sz=0,qt=0; gets_s(c); for(i=0;c[i]!='\0';i++) { //判断英文字符

if((c[i]>='a'&&c[i]<='z')||(c[i]>='A'&&c[i]<='Z')) zf=zf+1; elseif(c[i]>='0'&&c[i]<='9') //判断数字字符

sz=sz+1; else qt=qt+1; } cout<<"字符个数:"<<zf<<endl; cout<<"数字个数:"<<sz<<endl; cout<<"其他个数:"<<qt<<endl; return0;}二、字符串加密例8-4:在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易地识别。凯撒加密法是一种简单的加密方法,加密规则是:将每个字母用字母表中排在其后面的第3个字母的大写形式来替换(如字母d或D就用G来替换);对于字母表中最后的三个字母,可将字母表看成是首尾衔接的(如字母y或Y用B来替换);字符串中其他非字母符号不做改变。#include<iostream>usingnamespacestd;intmain(){ constintN=1000; //定义常变量N charc[N]; //N是字符数组的长度

gets_s(c); for(inti=0;c[i]!='\0';i++) { //如果是小写英文字符,则转换为大写字符

if(c[i]>='a'&&c[i]<='z') c[i]=c[i]-32; //如果是大写英文字符,后移3个字符;其他字符不变

if(c[i]>='A'&&c[i]<='Z') c[i]=(c[i]+3-'A')%26+'A'; } cout<<c<<endl; return0;}第三节字符串类一种来自C语言,常被称为C风格字符串,即用字符数组存储和处理字符串;C++处理字符串的方式有两种:另一种是C++的风格,使用字符串类。字符串类string属于标准C++语言类库,若要在程序中使用字符串类,在源程序最前面包含头文件: #include<string>一、字符串变量的定义例如:strings1,s2;定义字符串变量s1和s2,并且将默认值赋给s1和s2,默认值是"",即空字符串。语法格式:string字符串变量1,字符串变量2,…;二、字符串变量的初始化例如:strings1="IloveC++"; //定义的同时赋初值字符串常量以'\0'作为结束符,但将字符串常量存放到字符串变量中时,只存放字符串本身而不包括'\0'。语法格式:string字符串变量=字符串;三、字符串变量的赋值例如:strings1,s2;s1="IloveC++"; //用赋值语句对它赋予一个字符串常量s2=s1; //用一个字符串变量给另一个字符串变量赋值语法格式:字符串变量=字符串;四、字符串变量的输入输出strings1;cin>>s1; //cin遇到空格即停止cout<<s1;1、字符串变量得输入输出可以用cin和cout。2、使用getline()函数输入有空格的字符串。strings1;getline(cin,s1) //以回车符作为结束的标志cout<<s1;五、字符串变量的常用操作1、字符串拼接运算:使用“+”或“+=”运算符2、字符串关系运算:使用关系运算符进行比较3、获取字符串的长度:用函数length()或size()4、向字符串指定位置插入元素:insert()函数5、删除字符串中的元素:erase()函数6、查找字符串中的子串:find()函数和rfind()函数第四节字符串的应用(2)一、简单的密码验证系统例8-5系统内部预设的密码是“helloc”,编写密码验证系统。#include<iostream>#include<string>usingnamespacestd;intmain(){ strings; while(1) { cout<<"请输入密码:"; getline(cin,s); if(s=="helloc") //用“==”比较字符串

{ cout<<"密码正确,欢迎使用"<<endl; break; } else cout<<"密码错误,重新输入:"<<endl; } return0;}二、最后一个单词的长度例8-6:输出字符串最后一个单词的长度。单词之间空

温馨提示

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

评论

0/150

提交评论