用C语言指针实现字符串逆序及回文串的判定口裴晓英(新疆兵团高等专科学校新疆·鸟鲁木齐831300)摘要:字符串逆序输出是C语言经典算法之一,过去利用数组下标处理此类问题,较为繁琐,本文给出了利用指针实现任意给定字符串的逆序输出方法,以及在此基础上进行回文字符串判断的便捷方法。关键词:C语言指针字符串逆序算法回文中图分类号:TP39 文献标识码:A 文章编号:1007-3973(2008 1 12-071.Ol‘C语言中,实现任意给定字符串的逆序输出,是一道经典常用算法,掌握此类算法,对于提高运用字符串能力及编程综合能力都有很大的帮助。对于C语言字符串的处理,人们惯常使用的是数组下标的方法,不仅效率低,而且估算下标容易出错,准确率低,最为致命的还是下标一旦越界,会出现乱码甚至程序崩溃。笔者经过试验、总结,提炼出用指针实现字符串逆序输出的简便方法,并且在此基础上,应用此类方法,我们可以方便快捷的解决同类的字符串处理问题,例如回文的判断,本文也给出了相应实现办法.1问题(1)对于任意给定的字符串,进行倒置,打印输出该串为原串的逆序。例如输入为“tomo玎ow”。则其存储和输出即为“worromot”。(2)判断任意给定字符串是否回文,输出相应提示信息。所谓“回文串”,即一个字符串正序读和逆序读时都一样,如“level”或者“noon”等等就是回文串。2算法思路问题1)将一个给定字符串逆序存储定义一个足够大的字符数组,用于存储用户输入的任意字符串。再定义两个字符指针,分别指向字符串的头部和尾部,交换两指针指向的字符,交换后两指针分别后移和前移,循环交换对应位置的字符,直到两指针在中点相遇,则整个串实现了与原串的逆序存储。问题2)回文的判定:类似问题1)的处理方法,我们首先定义一个足够大的字符数组,用于存储用户输入的任意字符串。再定义两个字符指针,分别指向字符串的头部和尾部,两指针分别后移和前移,依次判断对应位置的字符是否相同,一旦不相同即退出循环,说明不是回文串,若一直相同,直到两指针在中点相遇,则整个串是回文串,输出相应信息。问题I)和问题2)的核心算法,都是对对应位置的字符进行比较判断,故我们都采用指针的方法可以很方便的解决这两类问题。3算法实现对比:用数组下标的方式判定回文的算法实现(结合指针的运用):#include“stdio.h”#include“string.h”int mmnO{ ,char sn-[50J,’p;im i;printf(“请输入字符串妇”);scanq”%s”,s∞;P-s也t/把指针移动到字符串的末尾矿矿strlen(str)-I;for(i=O;i<(int)strlen(str);i++,p..){if(+p!fstr[i]){printff”这个字符串不是回文、Il”);return l;}'printff”这个字符串是回文、ll”);return O:}对比:用堆栈的方式判定回文的算法实现:#include#define S1'ACK INIT SIZE loo#dcfine STACK INCltEⅣ【ENT lOtypcdef struct{char+base;char‘top;int stacksizc;}SqStack;int InitStack(SqStack‘S){S->base=(char+)malIoc(STACK—INIT—SIZE+sizeof(char)):if(!S->base)rg:t1.1nl 0:S->top=S->basc;S->s。tacksizc;STACK_INIT-sIZE;rgturn l:)int净0:intj=O;char str[20],str2120];斟m论丘·2008年第12期I下)万方数据戆黍熬j纛窦鬻鬃基于SolidWorks拉深模三维CAD系统的研究口张俊(宿迁学院机电工程系江苏·宿迁223800)摘要:本文简要介绍了开发拉深模具三维CAD系统的整体过程,并以凹模为例,详细阐述了模具各零部件的三维设计步骤,并给出了凹模设计的方法和开发程序。关键词:拉深模SolidWorks vB中图分类号:TP39 文献标识码:A 文章编号:1007.3973 I 2008)12-072·02筒形件拉深模具在汽车、拖拉机、飞机、钟表、电器和仪表中得到了广泛应用,市场前景良好。目前,三维筒形件拉深模CAD系统的研究和开发较为滞后,三维系统的开发迫在眉睫,本研究对于促进模具三维软件的开发、提高模具设计质量和生产效率、推进模具行业的快速成型技术和促进制造业的全面发展,均具有重要的研究价值。本系统采用Windows XP为操作系统、Visual Basic 6.0为编程工具、SolidWorks 2006为图形处理软件、MicrosoftAccess 2003为数据库管理系统。1系统的需求分析拉深模CAD系统的任务就是要使设计人员可以快速、轻松查阅数据和表格,降低对设计人员经验的依赖性,辅助设计人员进行决策,减轻设计人员绘图劳动,使拉深模设计更轻松,实现三维造型设计,提高模具质量和设计效率。筒形件拉深模CAD系统是一个比较复杂的系统,采用结构化分析方法可简化系统的难度,准确表达用户需求,确保软件开发成功。系统的详细数据流图如图l所示.:£媚‘嫱牲0 ,瓤§图1拉深模CAD系统详细数据流图2系统结构的设计本系统由六大模块构成:主控程序、产品信息输入模块、工艺计算分析模块、模具设计与计算模块、模具三维图生成模块及专用数据库和图形库。(1)主控程序主控程序即程序管理程序,对各模块进行综合管理,用户通过此界面进入模具的其它各个模块,并对其进行操作。(2)零件信息输入模块零件信息输入模块将拉深件的几何尺寸和精度、材料和工艺条件等信息输入到计算机内,并存入数据库中,为后续设计提供拉深件的产品信息。(3)工艺分析与计算模块工艺分析与计算模块主要对零件的各个参数进行工艺分析,判断参数是否符合工艺条件,并确定工艺参数。计算出毛坯尺寸,判断是否能一次拉深成形,计算拉深次数、拉深系数、各工序的半成品尺寸、压边力、拉深力、拉深功,并将上述信息存入数据库中,为模具设计打下良好基础。(4)模具设计与计算模块模具计算过程包括计算凸、凹模尺寸、圆角半径,计算零部件尺寸等。设计过程包括确定模具结构类型的选择、工作部件的设计、辅助零件的设计及模架、标准件的选择。(5)模具三维图生成模块在三维绘图环境下,利用CAD软件生成模具零部件的三维实体模型,最后在此基础上装配成该模具的装配体,为用户的下一步工作(如生成二维工程图、CAD/CAM的集成等)做准备。以凹模为例,介绍其开发过程。SqStack s;InitStack(&s);prinff(”请输入一个任意字符串:ha”);scanf(”‰”.stO;forCi和<操作系统>等后续课程的学习和把握.本文从指针的概念、指针的运算等来浅析C语言指针.8.期刊论文吴斌.WU Bin C语言指针的教学 -安徽职业技术学院学报2004,3(3)指针是C语言的低级语言特性.使用指针程序员可以按地址操作计算机内存,灵活实现一些特定功能;使用指针可以方便地表达复杂的数据结构,使程序简洁、高效、紧凑,指针是整个C语言课程的重点以及后续课程的重要基础.指针是C语言教学难点,在教学中采取适当的策略和方法完全可以取得较为满意的效果.9.期刊论文彭程.杨春生C语言指针操作技巧探讨 -中国高新技术企业2008,""(10)指针增加了我们控制程序的灵活性,但是指针使用不当就会出现野指针,危害整个程序的运行,所以在程序中使用指针时应十分小心,养成良好的编码习惯,避免出现野指针.10.期刊论文刘丽梅 复习C语言应注意的几个方面(之四)--针对CCT C语言指针部分 -承德职业学院学报2005,10(3)本文主要针对CCT中的C语言部分,在复习时应该注意的几个方面,以讲、例结合的方式作了详细的论述.