当前位置: 首页 > 科技观察

删除特定字符的算法设计及C代码实现_0

时间:2023-03-20 13:00:30 科技观察

1.需求描述输入一个长字符串和一个短字符串,编写程序将出现在短字符串中的字符从长字符串中删除。例如,长字符串为“1234abcd”,短字符串为“3a”,则程序处理后的字符串为“124bcd”;再比如,长串是“goodbye”,短串是“obh”,那么程序处理的字符串就是“gdye”。2.算法设计我们可以通过将长字符串中的字符与短字符串中的字符一一比较来判断一个字符是否应该从长字符串中删除。即如果长串为“1234abcd”,短串为“2a”,则先将长串中的第一个字符“1”与短串中的“2”、“a”进行比较,发现它们是不相等,所以字符“1”被添加到新字符串中;然后将长字符串中的第二个字符“2”分别与短字符串中的“2”和“a”进行比较,发现相等,则不在新字符串中加入字符“2”;执行此循环,直到比较长字符串中的所有字符。三、特殊过程注意事项在编写程序的过程中,我们需要考虑输入字符串的长度和格式,如:1、如果两个输入字符串中有一个包含汉字,则程序直接返回,不进行后续操作程序。2、如果输入的短字符串的长度大于长字符串的长度,则程序直接返回,不执行后续处理。4.程序代码/***************************************************************************Copyright(C)2016,ZhouZhaoxion.**文件名:RemoveChars.c*文件ID:无*内容概要:删除长串中短串出现的字符*其他说明:比如长串是“Myname”,短串是“na”,则结果为“Myme”*当前版本:V1.0*作者:周兆雄*完成日期:20160318*******************************************************************************/#include//重新定义数据类型typedefsignedcharINT8;typedefintINT32;typedefunsignedintUINT32;//函数声明voidRemoveCharsFromStr(INT8*pszInputLongStr,INT8*pszInputShortStr);/*****************************************************************************函数说明:主函数*输入参数:无*输出参数:无*返回值:0-执行成功其他-执行失败*其他说明:无*修改日期版本号修改者内容*----------------------------------------------*20160318V1.0ZhouZhaoxiongCre已***************************************************************************/INT32main(){INT8szInputLongStr[100]={0};INT8szInputShortStr[50]={0};UINT32iPosFlag=0;printf("请输入长字符串:\n");gets(szInputLongStr);printf("InputLongStr=%s\n",szInputLongStr);printf("请输入短字符串:\n");gets(szInputShortStr);printf("InputShortStr=%s\n",szInputShortStr);//判断两个字符串中是否有汉字for(iPosFlag=0;iPosFlagstrlen(szInputLongStr)){printf("%sislongerthan%s,pleasecheck!\n",szInputShortStr,szInputLongStr);return-2;}//调用函数从长字符中删除短字符串中的字符RemoveCharsFromStr(szInputLongStr,szInputShortStr);return0;}/*************************************************************************函数说明:从长字符中删除短字符串中存在的字符*输入参数:pszInputLongStr-输入长字符串pszInputShortStr-输入短字符串*输出参数:无*返回值:无*其他说明:无*修改日期版本号修改人修改内容*------------------------------------------------------------------*20160318V1.0ZhouZhaoxion创建的*******************************************************************************/voidRemoveCharsFromStr(INT8*pszInputLongStr,INT8*pszInputShortStr){INT8szNewtStr[100]={0};UINT32iOuterLoopF??lag=0;UINT32iInnerLoopF??lag=0;UINT32iCharUseFlag=0;if(pszInputLongStr==NULL||pszInputShortStr==NULL){return;}memset(szNewtStr,0x00,sizeof(szNewtStr));for(iOuterLoopF??lag=0;iOuterLoopF??lag