字符串的处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
东莞理工学院
课程设计
课程程序设计基础
题目字符串的处理
1 问题要求及任务描述
1.1 题目要求
字符串的处理
1.2 要完成的任务
实现要求:
⑴实现字符串的输入和输出;
⑵对所有的字符串按从小到大的顺序排序,即指针数组中的第一个元素指向最小的字符串,第二个元素指向次小的字符串…,依次类推;
⑶判断这些字符串中是否有“回文”,所谓“回文”指的是顺读和倒读都是一样的字符串;
⑷设计一个菜单,具有上述规定的操作要求、退出系统等最基本的功能。
2 解决问题的主要思路和方法
2.1 关键问题
设有若干个字符串,这些字符串存储位置的首地址保存在指针数组中(即字符串用指向字符的指针变量表示)。
2.2 拟采用解决问题的方法
对于较为复杂的每一个要求都自定义一个函数实现它的功能。
2.3 主要算法和处理流程图
F1函数
输入n
i=0
i++
scanf("%s",s)
strcpy(c[i],s)
Y
i N 结束 3 程序实现 3.1 程序实现时应考虑的问题 函数调用关系图 3.2 主要源代码及说明 /*⑴ 实现字符串的输入和输出; ⑵ 对所有的字符串按从小到大的顺序排序,即指针数组中的第一个元素指向最小的字符串,第二个元素指向次小的字符串…,依次类推; ⑶ 判断这些字符串中是否有"回文",所谓"回文"指的是顺读和倒读都是一样的字符串; ⑷ 设计一个菜单,具有上述规定的操作要求、退出系统等最基本的功能。 */ #include #include Main 主调函数 Switch 开关语句实现对各个函数的调用 F1和F2实现对 字符串的排序和输出 F3将字符串排序 F4判断字符串是否为回文。 若是则输出该字符串。 #include #define length 100 #define num 100 void menu(char b[][length],int n); void F1(char c[][length],int n); void F2(char d[][length],int n); void F3(char e[][length],int n); void F4(char f[][length],int n); main() /*第八个函数:主函数*/ { int n; char a[num][length]; printf("请问你要输入几个字符串呢?"); scanf("%d",&n); while(1) /*定义一个while永真循环*/ { system("cls"); menu(a,n); } } void menu(char b[][length],int n) /*第七个函数:这是菜单函数*/ { int xxxx=0; printf("\n\t\t\t字符串的处理\n\n"); printf("\t\t\t1 字符串的输入\n\t\t\t2 字符串的输出\n\t\t\t3 字符串的排序\n\t\t\t4 判断是否回文\n\t\t\t5 退出系统\n"); printf("\t\t\t请选择:"); scanf("%d",&xxxx); switch(xxxx) /*switch开关*/ { case 1: system("cls"); F1(b,n); break; case 2: system("cls"); F2(b,n); break; case 3: system("cls"); F3(b,n); break; case 4: system("cls"); F4(b,n); break; case 5: exit(0); /*强制退出*/ default:; } } void F1(char c[][length],int n) /*第一个函数:用来输入选手数据*/ { int i; char s[length]; for(i=0;i { printf("请输入第%d个字符串:",i+1); scanf("%s",s); strcpy(c[i],s); } printf("\n\n"); printf("输入完毕!按任意键返回主菜单!"); getch(); /*getch有停顿作用*/ } void F2(char d[][length],int n) { int i; for(i=0;i { printf("第%d个字符是%s\n",i+1,d[i]); } printf("\n\n"); printf("输出完毕!按任意键返回主菜单!"); getch(); } void F3(char e[][length],int n) { int i,j; char temp[length]; for(i=0;i { for(j=i+1;j { if(strcmp(e[j],e[i])<0) { strcpy(temp,e[i]); strcpy(e[i],e[j]); strcpy(e[j],temp);