




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
字符串字符串字符串与字符数组字符数组的定义和初始化字符串的输入与输出指针与字符串程序设计举例C语言程序设计简介字符串与字符数组在C语言中,字符串是存储在字符数组中并用空字符(’\0’)结束的字符序列。字符串charname[20];charnames[30][20];…name字符串名,即字符数组名,就是该字符数组第一个元素的地址name[0]name[1]name[19]字符数组的初始化给字符数组的全部元素赋初值字符串chara[5]={‘C’,’h’,’i’,’n’,’a’};a[0]a[1]a[2]a[3]a[4]‘C’‘h’‘i’‘n’‘a’字符数组的初始化给字符数组的部分元素赋初值第十一讲字符串chara[5]={‘C’,’h’,’i’};a[0]a[1]a[2]a[3]a[4]‘C’‘h’‘i’‘\0’‘\0’缺省的初值为‘\0’字符数组的初始化给全部元素赋初值时,可以不指定长度字符串chara[]={‘C’,’h’,’i’,’n’,’a’};a[0]a[1]a[2]a[3]a[4]‘C’‘h’‘i’‘n’‘a’chara[5]={‘C’,’h’,’i’,’n’,’a’};字符数组的初始化用字符串常量给字符数组赋初值字符串chara[]={“China”};chara[]=“China”;chara[6]={“China”};chara[6]=“China”;a[0]a[1]a[2]a[3]a[4]a[5]‘C’‘h’‘i’‘n’‘a’‘\0’来自字符串常量的结束字符‘\0’。字符串的输入输出字符串的输入输出有几种方式用格式输入输出函数逐个字符输入输出%c用格式输入输出函数作为整体输入输出%s用字符串输入输出函数作为整体输入输出gets()puts()字符串字符串的输入输出用%c逐个字符的输入输出举例(cw1101.c)字符串#include<stdio.h>#defineMAX5voidmain(){
intn;charc[MAX];
printf("Input%dcharacters:\n",MAX);
for(n=0;n<MAX;n++)
scanf("%c",&c[n]);
printf("Showthe%dcharacters:\n",MAX);
for(n=0;n<MAX;n++)
printf("%c",c[n]);}字符串的输入输出用%s实现字符串作为整体一次性的输入输出举例(cw1102.c)字符串#include<stdio.h>#defineMAX5voidmain(){charc[MAX];
printf("Input
c[%d]:\n",MAX);
scanf("%s",c);
printf("Show
c:\n");
printf("%s",c);}输入和输出项都是数组名在输入时,空格、制表符和换行符都被作为字符串的分隔符,不被读入在输出时,一旦遇到‘\0’就结束字符串的输入输出用标准库提供的字符串输入输出函数举例(cw1103.c)字符串#include<stdio.h>#defineMAX5voidmain(){charc[MAX];
printf("Input
c[%d]:\n",MAX);
gets(c);
printf("Show
c:\n");
puts(c);}在输入时,换行符被作为数据的分隔符,不被读入但是,空格和制表符可以被读入puts()输出字符串后自动换行指针与字符串字符串指针指向字符串(字符数组)字符指针。指针charstr[20]=“China”,*p=str;printf(“%s”,p);China\0char*p=“China”;printf(“%s”,p);C语言对字符串常量是按字符数组处理的。char*p;p=“China”;printf(“%s”,p);China\0p指针与字符串字符数组和指针比较指针charstr[5]=“wuhan”;char*p=“wuhan”;char*p;p=“wuhan”;charstr[5];str=“wuhan”;=≠错对指针与字符串字符数组和指针比较指针char*p;scanf(“%s”,p);charstr[5],*p;p=str;scanf(“%s”,p);charstr[5];scanf(“%s”,str);错对对在编译时为字符串数组分配内存单元,有确定的地址虽然为字符指针变量分配了内存单元,但其值(地址)是不确定的,不可以使用指针与字符串案例分析问题:字符串的拷贝。指针China\0Chinese\0afrmbtoChina\0e\0bvoidstrCopy(char*frm,char*to){while((*to=*frm)!='\0'){
frm++;to++;}}voidmain(){char*a="China";char*b="Chinese";
strCopy(a,b);
printf("%s",b);}China字符和字符串标准库函数字符函数:<ctype.h>字符串函数:<string.h>常用的函数strcat(字符数组名1,字符串2)strcpy(字符数组名1,字符串2)strcmp(字符串1,字符串2)strlen(字符串)strlwr(字符数组名)strupr(字符数组名)字符串转换库:<stdlib.h>把数字字符串转换成整数和浮点数字符串字符串:字符串数组名或者字符串常量案例分析(一)问题输入一行字符,统计其中有多少个单词,单词之间用空格隔开。分析逐一检测字符,遇到单词的第一个字符就计数。单词的第一个字符是一个非空格字符,且其前一个字符是空格。定义一个标记变量。记住当前字符的前一个字符(最近检测的)是否是空格。字符串Iamfrom…\0案例分析(一)设计定义标记变量word0最近检测的字符是空格期待新单词出现1最近检测的字符不是空格正在读单词期待单词的结束字符串i=0word=0num=0(c=s[i])!=‘\0’c==‘’word=0i++word==0word=1num++NYNYNY案例分析(一)源代码(cw1104.c)字符串#include<stdio.h>voidmain(){charc,s[81];
inti,num,word;
printf("Inputasentence:\n");
gets(s);案例分析(一)源代码字符串
num=word=i=0;while((c=s[i])!='\0'){if(c=='')word=0;elseif(word==0){word=1;num++;}i++;}
printf("Thereare%dwordsinthissentence.\n",num);}扩展:输出这些单词统计每个单词出现的次数案例分析(二)问题编程实现strcat()函数的功能。任意输入两个字符串,将它们连接成一个字符串。分析字符串xyz\0abc\0str1str2\0案例分析(二)源代码(cw1105.c)字符串#include<stdio.h>voidmyStrcat(charstr1[],charstr2[]){
inti,j;
for(i=0;str1[i]!='\0';i++);
for(j=0;str2[j]!='\0';i++,j++)
str[i]=str2[j];
str[i]='\0';}voidmain(){charstr1[161],str2[81];
printf("Inputtwostrings:\n");gets(str1);gets(str2);
myStrcat(str1,str2);
printf("\nNow,yougetanewstring:\n%s\n",str1);}str1的长度要足够大案例分析(三)问题输入一字符串,再输入一个字符,要求程序将字符串中该字符删去。分析字符串wuhanda\0wuhanda\0读写例:删去空格wuhanda\0读写案例分析(三)源代码(cw1106.c)字符串#include<stdio.h>voidmain(){
voiddelLetter(char
str[],charc);charstr[81],c;
printf("Inputastring:\n");gets(str);
printf("Inputaletter:\n");c=getchar();
delLetter(str,c);
printf("Deleteall\'%c\'fromthestring.\n",c);
printf("Thestring:\n");
puts(str);}案例分析(三)源
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025终止合作合同协议书模板
- 2025授权买卖合同书模板
- 2025设备维护服务合同范本及维修服务种类
- 2025上海市园林绿化工程委托审价合同
- 2025建筑材料订购合同范本
- 2025商品房买卖合同标准模板
- 2025广告合同(期刊上刊登)
- 2025茶叶类购销合同范文
- 2025商场照明系统维护合同模板示例
- 2025婚庆服务合同全书
- 瓦斯发电方案
- Q-CR 807-2020 隧道喷射混凝土用液体无碱速凝剂
- 民间非营利组织会计制度分解
- YY/T 0314-2021一次性使用人体静脉血样采集容器
- GB/T 20564.2-2017汽车用高强度冷连轧钢板及钢带第2部分:双相钢
- GB/T 13914-2013冲压件尺寸公差
- GB/T 11349.3-1992机械导纳的试验确定冲击激励法
- 《政治学原理》课件
- 【高效管理】团队建设-如何迈向高绩效团队课件
- 《新托福专项进阶-初级写作》【WORD版】
- 2022年江苏凤凰出版传媒集团有限公司招聘笔试题库及答案解析
评论
0/150
提交评论