字符串的处理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 /*这个与exit()有关*/ #include /*这与字符串处理函数有关*/

Main 主调函数

Switch 开关语句实现对各个函数的调用

F1和F2实现对

字符串的排序和输出 F3将字符串排序

F4判断字符串是否为回文。

若是则输出该字符串。

#include /*这与getch()有关*/

#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);

相关文档
最新文档