实验7 字符数组和字符串
字符数组和字符串

输入数字输出字符
scanf("%d",&n); cout<<char(n);
字符数组
✓ 什么是字符数组 ✓ 声明字符数组 ✓ 初始化字符数组
✓ 访问字符数组元素 ✓ 字符数组使用
字符数组
初始值表中的每个数据项是一个字符,用字符给数组chr1的各个元素 初始化。当初始值个数少于元素个数时,从首元素开始赋值,剩余元素 默认为空字符。要使用单引号包裹起来。
char a[1000]; scanf(“%s”,a);
printf(“%s”,a);
输入
输出
字符串使用
截取字符串一部分输出:
char a[1000]; scanf(“%s”,a); for(int i=2;i<=5;i++){
printf("%c",a[i]); }
printf("%c",(a[i]-'a'+n)%26+'a');
char a[1000]; scanf(“%s”,a);
printf(“%s”,a);
输入
输出
字符串使用
字符串的输入与输出 字符串可以作为一维字符数组来处理。本节仅介绍将字符串作为一个整 体进行输入和输出的语句。 (1)输入 从键盘输入一个字符数组可以使用scanf语句或gets语句。 1) scanf语句 格式:scanf(“%s”,字符数组名称); 遇到空格和回车自动停止,不能读取空格和回车。在字符数组的末尾会 自动添加‘\0’作为结束标志。
a bc
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8]a[9]
7字符数组与字符串

字符数组与字符串1.字符:定义:char ch;int('a')=97;int('A')=65;int('0')=48;'b'-'a'=1; char(65)='A'2.字符数组:定义:char st1[101],st2[101] ; //字符数组说明输入:cin>>st1>>st2;int a,b;输入:hello, world;//字符数组和字符串都是以空格和换行符分开则st1={…h‟,‟e‟,‟l‟,‟l‟,‟o‟,‟,‟,‟\0‟}st2={…w‟,‟o‟,‟r‟,‟l‟,‟d‟,‟\0}字符‟\0‟为字符串结束标志(1)字符数组长度strlen(st1); //如a=strlen(st1);b=strlen(st2); 则a=6,b=5(2)字符数组比较不能直接比较,st1>st2是错误的,要用strcmp()函数strcmp(st1,st2); //st1=st2相等则输出0,st1<st2输出-1,st1>st2输出1。
strncmp(st1,st2,n); //把st1,st2的前n个进行比较。
(3)连接字符数组不能直接用st1=st1+st2;用strcat()函数strcat(st1,st2);//将st1和st2连接后赋给st1,本例连接后st1为hello,world”strncat(st1,st2,n); n表示连接上st2的前n个给st1,在最后不要加'\0'。
(4)替换strcpy(st1,st2);//用st2的值替换st1的值,字符数组不能如此赋值st1=st2或st1[]=st2[]都是错误的本例中st1值被替代为”world”strncpy(st1,st2,n); n表示复制st2的前n个给st1,在最后要加'\0'。
实验七 字符串

实验七字符串【开发语言及实现平台或实验环境】Windows2000 或XP,JDK1.6与Eclipse【实验目的】1. 掌握String中的常用方法与作用2. 掌握StringBuffer中的常用方法与作用【实验要求】1. 掌握String和StringBuffer中的常用方法与作用。
2. 理解String和StringBuffer的区别【实验内容】1 String 是不可变的字符串字符串操作练习public class MathRandomTest{public static void main(String [] args) {String s="ABCDEFGHIJKLMN";System.out.println(s);System.out.println("The string contains"+s.length());System.out.println("The character at index 4 is:"+s.charAt(4));System.out.println("The index of character N is:"+s.indexOf('N'));String alphabet="ABCDEFGHIJKLMN";System.out.println(alphabet);System.out.println("Thesubstringfromindex4toindex 8 is"+alphabet.substring(4,8));System.out.println("The substring from index 0 to index 8 is"+alphabet.substring(0,8));System.out.println("The substring from index 8 to end is"+alphabet.substring(8));String sbis="StringBufferInputStream";System.out.println(sbis);String sbislc=sbis.toLowerCase();System.out.println(sbislc);String sbisup=sbis.toUpperCase();System.out.println(sbisup);String first="James";String last="Gosling";System.out.println(first+last);System.out.println(first+","+last);String str="This is the Mississippi River";System.out.println(str);int i=str.indexOf('s');System.out.println("The first index of 's' is "+i);int j=str.indexOf('s',i+1);System.out.println("The next index of 's' is "+j);int k=str.indexOf('s',j+1);System.out.println("The next index of 's' is "+k);k=stIndexOf('s');System.out.println("The last index of 's' is "+k);System.out.println(str.substring(k));String inventor="charles Babbage";System.out.println(inventor);System.out.println(inventor.replace('B','C'));System.out.println(inventor);int n=44;System.out.println("n= "+n);String strn=String.valueOf(n);System.out.println("strn= "+strn);String today="May 18,2009";String todaysDayString=today.substring(4,6);int todaysDayInt=Integer.parseInt(todaysDayString);int nextWeeksDayInt=todaysDayInt+7;String nextWeek=today.substring(0,4)+nextWeeksDayInt+today.substring(6);System.out.println("Today's date is"+today);System.out.println("Today's date is"+todaysDayInt);System.out.println("next week's date is"+nextWeeksDayInt);System.out.println("next week's date is"+nextWeek);}}1.字符串(String)对象一旦创建,其内容不能再被修改 (read-only)。
c语言实验7数组实验报告

实验报告课程名称程序设计实验项目名称数组班级与班级代码14级计算机科学与技术1班实验室名称(或课室) SS1-332专业计算机科学与技术任课教师学号:姓名:实验日期:2014年月日广东商学院教务处制一.实验目的1.熟练掌握一维数组、二维数组的定义、赋值、输入、输出方法。
2.熟练掌握字符数组和字符串函数的使用。
3.熟练掌握一位数组以及一位数组元素的存储关系。
4.熟练掌握一位数组和二维数组的使用以及在函数中的传递。
5.通过上机实践掌握与数组有关的算法。
二、实验内容上机题1输入并运行以下程序。
实验内容:用2个数组对第3个数组进行赋值#include<stdio.h>main(){int i,a[5],b[5],c[5];a[0]=2,a[1]=6,a[2]=4,a[3]=8,a[4]=9;b[0]=2,b[1]=7,b[2]=9,b[3]=5,b[4]=3;for(i=0;i<=4;i++){c[i]=a[i]*b[i];printf("c[%d]=%d\n",i,c[i]);}}实验步骤○1int a[5]:整型一维数组说明,a是数组名,也是数组的起始地址,该数组可以存储5个整数。
a[0]~a[4]也可以看成是变量标识字符,[]中的数值称为数组下标,下标从0开始。
○2数组赋值方法和一般变量一样。
例如,a[0]=2表示将2赋给a[0]。
运行结果上机题2 输入并运行以下程序。
实验内容:对不指明数组的数组进行赋值并用循环结构进行求和#include<stdio.h>main(){int sum,i;int a[]={5,8,4,6,4,3,8,2,4,5,6};sum=0;for(i=0;i<=10;i++)sum+=a[i];printf("sum=%d\n",sum);}实验结果实验小结○1对全部元素赋初值时,可以不指定数组长度,C编译系统自动根据初值个数来决定数组长度。
C语言实验报告数组

实验七数组1.实验目的(1)熟练掌握一维数组、二维数组的定义、初始化和输入/输出方法;(2)熟练掌握字符数组和字符串函数的使用;(3)掌握与数组有关的常用算法如查找、排序等..2.实验指导(1)对任意一个一维型数组;从中找出数组元素的最大值和最小值并输出..要求:①数组有十个元素;②使用scanf函数实现数组元素的输入前给出必要的提示;③输出时;首先输出数组的十个元素;然后输出其最大值和最小值..分析指导:①算法分析:首先定义一个数组;通过循环从键盘输入十个数组元素的值;再通过另一个循环判断数组元素的最大只和最小值;②根据分析情况编写程序:include<stdio.h>mainint a10;i;max;min;printf"please input ten integers:";fori=0;i<=9;i++{scanf"%d";&ai;}max=a0;min=a0;fori=1;i<=9;i++{ifai>maxmax=ai;ifai<minmin=ai;}fori=0;i<=9;i++{printf"a%d=%d\n";i;ai;}printf"The maximum value is %d;and the minimum value is %d\n";max;min;运行程序;输入十个整数;如:21 37 6 17 9 12 89 76 35 59运行结果如下:(2)编写函数cmpStrchar s1;char s2比较两个字符串s1和 s2的大小..如果s1>s2;返回一个正数;s1=s2;返回0;s1<s2;返回一个负数;在主函数中调用该函数完成字符串的比较操作;并输出返回的值..要求:①不允许使用strcmp函数;②用gets函数在主函数中输入两个字符串;③实现触摸屏受托人函数;返回的正数或负数的绝对值应该是进行比较的两个字符传中相应字符的ASCII码的差值..分析指导:①算法分析:两个字符串从第一个字符开始一一对应进行比较;直到不相等的那个字符;从而求得它们的ASCII码的差值..比如;‘A’与‘C’相比;由于‘A’<‘C’;应输出负数;由于‘A’与‘C’的ASCII码的差值为2;因此;应输出“-2”..同理;“And”和“Aid”比较;根据第二个字符比较结果;‘n’比‘I’大5;因此应输出‘5’;②根据分析情况编写程序:include<stdio.h>int cmpstrchar s1;char s2{int i;diff;i=0;whiles1i==s2i&&s1i='\0'i++;ifs1i=='\0'&&s2i=='\0'diff=0;elsediff=s1i-s2i;return diff;}void main{int z;char s1100;s2100;printf"input the first string:";//输入字符串1gets s1;printf"input the second string:";//输入字符串2getss2;z=cmpstrs1;s2;//输出比较结果printf"the difference between two strings is %d\n";z;}查看运行结果如下:重新输入两个字符串meet;mood运行结果如下:(3)再给定的字符串中查找指定的字符..要求:①字符串采用直接初始化的方式处理;②通过scanf函数读入一个任意字符;③在字符串中查找该字符;如果存在该字符;输出该字符在字符串中的一次出现的位置;如果再给定的字符串中不存在该字符;则给出相应的说明信息..include<stdio.h>void main{int i;char ch;char s=" program";printf" 输入一个英文字母: ";scanf"%c";&ch;for i=0;si='\0';i++{if si==chbreak;}if i<7printf"s%d=%c\n";i;ch;elseprintf"No founded\n";}输入一个英文字母O运行程序如下:再次输入一个英文字母w运行程序如下:(4)首先输入一个大于二且小于十的整数n;然后定义一个二维整型数组nn;初始化该数组;讲述组中最大元素所在的行和最小元素所在的行对调..要求:①nn数组元素的值由scanf函数从键盘输入假定最大值最小值不在同一行上;然后输出该数组;②查找最大值最小值所在的行;将数组中最大元素所在的行和最小元素所在的行对调;并输出对调后的数组;③为直观起见;数组按n行n列的方式输出;④修改程序;对最大值与最小值可能出现在一行种的情况进行处理.. include<stdio.h>main{long matrix99;min;max;temp;int i;j;n;nMax=0;nMin=0;printf"\nplease inpute n of matrix:\n";scanf"%d";&n;printf"\nplease inpute elements of matrix%d%d:\n";n;n; fori=0;i<n;i++forj=0;j<n;j++scanf"%ld";&matrixij;min=max=matrix00;fori=0;i<n;i++forj=0;j<n;j++{ifmatrixij>max{max=matrixij;nMax=i;}else ifmatrixij<min{min=matrixij;nMin=j;}}forj=0;j<n;j++{temp=matrixnMaxj;matrixnMaxj=matrixnMinj;matrixnMinj=temp;}printf"\nResult matrix:\n";fori=0;i<n;i++{forj=0;j<n;j++printf"%5ld";matrixij;printf"\n";}}输入一个数4;输入一个44的数组1 3 6 72 4 5 81 3 5 72 6 9 7运行程序如下:再次输入一个数字3;输入一个33的数组1 2 32 4 537 8运行程序如下:3 实验结论通过本次实验熟练的掌握一维数组、二维数组的定义、初始化和输入/输出方法以及字符数组和字符串函数的使用;还有就是掌握与数组有关的常用算法。
答案 实验报告_实验7_数组(学号_姓名)

实验报告_实验7_数组(学号_姓名)一、实验目的:1、理解数组的作用、特点;2、掌握一维数组、二维的定义、引用、初始化,能够与循环结合实现批量数据处理(如输入、输出,比较大小,交换等);3、掌握字符数组、字符串的使用;4、熟悉打擂台等典型算法。
二、实验内容1、(基础题)有一个数列,它的第一项为1,第二项为2,第三项为3,以后每一项都等于它的前三项之和。
使用一维数组编程实现功能:计算该数列的前20项并赋值给数组,然后以逆序方式输出,每一行5个数据。
如下图所示:程序代码:#include<stdio.h>int main(){int i;int f[20]={1,2,3};for(i=3;i<20;i++)f[i]=f[i-1]+f[i-2]+f[i-3];//计算数列的值for(i=19;i>=0;i--){//每行输出5个数据printf("%10d",f[i]);if(i%5==0)printf("\n");}printf("\n\n");return0;}2、(基础题)青年歌手大奖赛,有7名评委进行打分,分数取值范围:0.0~10.0,试编程实现如下功能:从键盘输入7位评委给某一选手的评分,之后计算、输出该选手的平均得分(计算规则:去掉一个最高分和一个最低分,求出剩余5个得分的平均值)。
如下图所示:(提示:使用一维数组来保存7位评委的给分,先计算所有评委给分总和,并找到最高分、最低分,然后用给分总和-最高分-最低分,再除5得到选手的平均得分,最后输出。
)程序代码:#include<stdio.h>#define N7int main(){double score[N];double max,min,sum,aver;int i;printf("请输入%d位评委的给分:\n",N);for(i=0;i<N;i++)scanf("%lf",&score[i]);max=min=sum=score[0];for(i=1;i<N;i++){if(max<score[i])max=score[i];if(min>score[i])min=score[i];sum=sum+score[i];}sum=sum-max-min;aver=sum/(N-2);printf("\n去掉一个最高分:%.4f,去掉一个最低分:%.4f\n\n",max,min);printf("该选手的最后得分是:%.4f\n\n",aver);return0;}3、(基础题)计算矩阵之和:先输出这两个矩阵,再输出求和后矩阵。
字符数组与字符串

8
1.3 字符串与字符数组
1、字符数组可以用字符串来初始化,例如 C语言允许用字符串的方式对数组作初始化赋值。
例如: char c[]={'C', ' ','p','r','o','g','r','a','m ', ' \0',}; 可写为: char c[]={"C program"}; 或去掉{}写为: char c[]="C program";
素为“空”('\0'),当初始化数据多于元素个数时,将出错。 例如: char c[10]={'c',' ','p','r','o','g','r','a','m'};
赋值后各元素的值为:其中c[9]未赋值,由系统自动赋予为 空字符‘\0' 值。
2
1.1 字符数组与初值化
数组在内在中的存放形式如图5-7所示:
14
1.4 字符数组的输入输出
说明: (7) C语言中,数组名代表该数组的起始地址,因此,
scanf()函数中不需要地址运算符&。 char str[13]; scanf("%s",str); scanf("%s",&str); /* 此语句是错误的 */
第7讲数组----字符数组和字符串

9
字符串比较函数strcmp 字符串比较函数 格式: 字符串1,字符串 格式:strcmp(字符串 字符串 字符串 字符串2) 功能: 功能:比较两个字符串 常用的字符串处理函数(2) 常用的字符串处理函数( ) 比较规则:对两串从左向右逐个字符比较( 比较规则:对两串从左向右逐个字符比较(ASCII码), 码 直到遇到不同字符或‘ 为止 直到遇到不同字符或‘\0’为止 返值:返回int型整数,a. 若字符串1< 字符串2, 返回负整数 返值:返回 型整数, 若字符串 字符串 , 返回负整数 型整数 b. 若字符串 字符串 , 返回正整数 若字符串1> 字符串2, 返回正整数 c. 若字符串 若字符串1== 字符串 , 返回零 字符串2, 返回零 说明:字符串比较不能用“ 必须用strcmp 说明:字符串比较不能用“==”,必须用 必须用 字符串长度函数strlen 字符串长度函数 格式: 字符数组) 格式:strlen(字符数组 字符数组 功能: 功能:计算字符串长度 返值:返回字符串实际长度,不包括‘ 在内 返值:返回字符串实际长度,不包括‘\0’在内
若以下说明,则数值为 的表达式是 的表达式是() 若以下说明,则数值为4的表达式是()
int a[12]={1,2,3,4,5,6,7,8,9,10}; char c=‘a’,d,g; A)a[g-c] ) B)a[4] ) C)a[‘d’-‘c’] ) D) a[‘d’-c] )
13
以下程序执行后的输出结果是() 以下程序执行后的输出结果是()
对于以下字符串, 的值为: 例 对于以下字符串,strlen(s)的值为:
char s[10]={‘A’,‘\0’,‘B’,‘C’,‘\0’,‘D’}; 答案: 答案:1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验7 字符数组和字符串[预备知识]完成学生登录和试题下载的任务,将试题包文件解压缩完后可看到有一个实验素材文件夹;在实验素材文件夹下,将diy文件夹下的所有.c文件复制到实验结果文件夹下;打开实验结果文件夹,选择一个.c的文件,单击右键并选择“打开方式\选择程序”如图选择“浏览”按钮,选择“c:\program files\microsoft visual studio\common\msdev98\bin\msdev.exe”程序,并将复选框打钩,单击“确定”,如图双击.c扩展名的文件,自动启动VC++6.0的程序。
按要求依次完成DIY中的三项任务,调式程序、程序填空和编程题,将debug文件夹下的所有.exe 程序文件复制到实验报告和结果文件夹下,打开“实验报告.doc”文件,填写相关的原程序文件名和可执行程序文件名;关闭所有应用程序,点击上传按纽。
[实验目的]1.掌握字符串的概念、定义及存储2.掌握字符串的基本操作3.熟悉常用的字符串操作函数[实验范例][问题] 输入两个字符串arr1和arr2,判断第1个字符串arr1是否包含第2个字符串arr2。
[分析]设第2个字符串长度小于第1个字符串。
从第1个字符开始,从arr1中取出一个字符与arr2的第1个字符比较,若相同,则从arr1中取出与arr2长度相等的子字符串放入中间字符数组中,判断该中间字符串与arr2是否相等,若不同,则从arr1的下一个字符再判断。
[代码]#include<stdio.h>#include<string.h>#define MAX 20void main(){char arr1[MAX],arr2[MAX],temp[MAX];int i,j,k,m,n,flag=0;printf("请输入第一组字符串:");gets(arr1);printf("请输入第二组字符串:");gets(arr2);m=strlen(arr1); /*第1个字符串的长度*/n=strlen(arr2); /*第2个字符串的长度*/for(i=0;i<m;i++){temp[n]='\0'; /*初始化中间字符数组*/if(arr1[i]==arr2[0]) /*判断arr1的某个字符与arr2的第1个字符是否相同*/{k=i;for(j=0;j<n;j++,k++) /*从arr1中取子串*/temp[j]=arr1[k];if(strcmp(temp,arr2)==0) /*比较两个字符串是否相同*/{printf("位置:%d,包含\n",i+1);flag=1; /*相同则变量flag置1*/break; /*退出循环*/}}}if(flag==0)printf("不包含\n");}[DIY]1、调试下列程序(下列各程序中存在一些问题,通过调试发现问题,并加以修正,使其实现预期目标)[1.1]以下程序统计字符串str中字符…#‟与数字字符的个数。
[代码]#include<stdio.h>main(){char str[81];int n1,n2;gets(str);for ( i = 0; str[i] ! = …\0‟; i++ ){if ( str[ i]=…#‟ )n1 ++;if (str[i]>=0 && str[i] <= 9 )n2 ++; }printf( “#=%d, digit=%d\n”, n1, n2 );}[1.2] 有n个国家参加运动会,开幕式上,各国的出场顺序以国名在英文字典中的位置先后为序,输出一份各国出场顺序表。
[代码]#include<stdio.h>#include<math.h>#define N 10main(){ char name[N][30], str[30]; int i, j;printf("Enter the name:\n ");for(i=0; i<N; i++){ scanf("%s", &name[i] ); strupr(name[i]); } /*输入国名,转换为大写*/for( i = 0; i<N; i++) /*排序*/for(j= i; j<N; j++ )if(name[i]> name[j]){ strcpy(name[i],str );strcpy(name[i], name[j]);strcpy(name[j], str);}for( i=0; i<N; i++) printf("%s\n", name[i]);}2.程序填空(请填写适当的符号,使程序实现其功能)[2.1] 程序的功能是删除字符串s中与变量c相同的字符。
main(){ char s[80], c; int i,j;scanf("%s", s); getchar(); c=getchar();for (i=j=0; (1) ;i++)if (s[i]!=c ) (2) ;s[j]='\0';puts(s);}[2.2]以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。
例如,输入字符串:abc123edf456gh,执行程序后输出:123456。
请填空。
#include <stdio.h>#include <string.h>main(){ char s[80], d[80]; int i,j;gets(s);for(i=j=0;s[i]!='\0';i++)if(__________) { d[j]=s[i]; j++; }d[j]='\0';puts(d);}3.编程[3.1] 最多从键盘输入80个字符,遇到回车键就结束,将输入的字符串按奇偶位置拆分,奇数位字符在前偶数位字符在后重新组成新的字符串输出,例如输入: ab12cd3456fg,则经过程序处理后输出: a1c35fb2d46g。
[3.2] 编程序把从键盘输入的英文短文作为一个字符串(长度不超过80),把短文中每个单词的首字母改成大写(原输入可以是大写),若还发现有两个或两个以上连续的空格,把它们删成只有一个空格,输出修改后的字符串。
[本章测试]一、单选题(10分)1、以下合法的数组定义是:___________________。
A char a[]=”string”;B char a[6]=”string”;C int a[5]={0,1,2,3,4,5};D int a[]={0,1,2,3,4,5};2、若有以下语句, 则下面正确的描述是__________。
char x[]="12345"; char y[]={'1','2','3','4','5'};A. x数组和y数组的长度相同 B. x数组的长度大于y数组的长度C. x数组的长度小于y数组的长度 D. x数组等价于y数组3、若有以下定义:char s[]=“\0187654321\\”; 则s 所占的内存空间为______。
A)1个字节B)12个字节C)11个字节D)10个字节4、下列关于字符串的说法中错误的是A)在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符′\0′作为字符串结束标志B)′\0′作为标志占用存储空间,计入串的实际长度C)在表示字符串常量的时候不需要人为在其末尾加入′\0′D)在C语言中,字符串常量隐含处理成以′\0′结尾5、以下程序的输出结果是:_______。
#include “stdio.h”main(){ char s[]="abcdef";s[3]='\0';printf("%s\n",s);}A) abcdef B) abcde C) abcd D) abc6、有以下程序#include “stdio.h”main(){ char a[ ]={…a‟,…b‟,…c‟,…d‟, …e‟, …f‟, …g‟,…h‟,…\0‟}; int i,j;i=sizeof(a); j=strlen(a);printf(“%d,%d\b”i,j);}程序运行后的输出结果是A) 9,9 B) 8,9 C) 1,8 D) 9,87、以下程序的输出结果是B#include “stdio.h”main(){ char ch[3][5]={"AAAA","BBB","CC"};printf("\"%s\"\n",ch[1]);}A. "AAAA" B. "BBB" C. "BBBCC" D. "CC"8、当执行下面的程序时,如果输入ABC,则输出结果是____。
#include “stdio.h”#include “string.h”main(){ char ss[10]=“1,2,3,4,5”;gets(ss); strcat(ss, “6789”); printf(“%s\n”,ss);}A. ABC6789 B.ABC67 C. 12345ABC6 D. ABC4567899、有下面程序段#include "stdio.h"#include "string.h"main(){char a[3][20]={{"china"},{"isa"},{"bigcountry!"}};char k[100]={0},*p=k;int i;for(i=0;i<3;i++){ p=strcat(p,a[i]);}i=strlen(p);printf("%d\n",i);}则程序段的输出结果是A)18 B)19 C)20 D)2110、有以下程序#include <string.h>#include <stdio.h>main(){ char p[][10]={ "abc","aabdfg","abbd","dcdbe","cd"},t[10];int i,j;for(i=0;i<5;i++)for(j=i+1;j<5;j++)if(strcmp(p[i],p[j])<0){ strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}printf("%d\n",strlen(p[0]));}程序运行后的输出结果是。