欢迎来到天天文库
浏览记录
ID:49976649
大小:22.79 KB
页数:7页
时间:2020-03-03
《字符串练习题 含参考代码.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、字符串练习题1.字符串常用函数编程实现。(1)求长度:intmyStrLen(constchar*str)(2)字符串拷贝:char*myStrCpy(char*strSource,constchar*strTarget){char*p1,*p2;for(p1=strSource,p2=strTarget;*p2!=’ ’;p1++,p2++){*p1=*p2;}*p1=’ ’;}P1=strSource;p2=strTarget;While(*p1++=*p2++);(3)字符串连接:char*
2、myStrCat(char*strSource,constchar*strTarget){char*p1,*p2;//指针要移到字符串strSource的末尾while(*p1!=‘ ’)p1++;//while(*p1++);p2=strTarget;while(*p2!=’ ’){*p1=*p2;p1++;p2++;}*p1=’ ’;//while(*p1++=*p2++);}(1)字符串比较:intmyStrCmp(constchar*str1,constchar*str2)1.判断字符串
3、是否回文。是回文,返回1,不是,则返回0.intisHuiWen(constchar*str){intflag=0;//先设为不是,返回0char*pstart,*pend;//指向字符中头、尾的指针pend=str;while(*pend)pend++;//将pend移到字符串末尾pend--;//退回到最后一个有效字符处//开始判断pstart=str;while(*pstart==*pend&&pstart4、if(pstart5、arsource,chartarget){intflag=0;//替换是否成功的标识while(*str){if(*str==source)//找到了{*str=target;flag=1;//有过替换,则更新替换成功标识}str++;}returnflag;}1.识别字符串中的整数并转换为数字形式。(华为笔试题)问题描述:识别输入字符串中所有的整数,统计整数个数并将这些字符串形式的整数转换为数字形式整数。要求实现函数:voidtake_num(constchar*str,int*n,unsigned6、int*outArray)【输入】str:输入的字符串【输出】n:统计识别出来的整数个数outArray:识别出来的整数值,其中outArray[0]是输入字符串中从左到右第一个整数,outArray[1]是第二个整数,依此类推。【返回】无注:(1)、不考虑字符串中出现的正负号(+、-),即所有转换结果为非负整数(包括0和正整数)(2)、不考虑转换后整数超出范围情况,即测试用例中可能出现的最大整数不会超过unsignedint可处理的范围(3)、需要考虑’0’开始的数字字符串情况,比如”00035”,7、应转换为整数35;”000”应转换为整数0;”00.0035”应转换为整数0和35(忽略小数点:mmm.nnnnnn当成两个整数mmm和nnnnnn来识别)(4)输入字符串假定不会超过100字节。【示例】输入:ab00cd+123fght456-253.005fgh输出:n=6outArray={0,123,456,25,3,5}voidtake_num(constchar*str,int*n,unsignedint*outArray){intisnum=0;//定义一个是否为数字的标识,0--不是,8、1--是intnum;//数字字符对应的整数数字*n=0;//整数个数清0while(*str)//字符串未处理完毕{if(*str>='0'&&*str<='9')//是数字字符{num=*str-'0';//转换为数字形式if(isnum)//如果前一个字符是数字字符,则当前字符是某个整数的非第1个数字字符outArray[*n]=outArray[*n]*10+num;else//前一个字符不是数字字符,则当前字符是某个整数的第1个数字字符{out
4、if(pstart5、arsource,chartarget){intflag=0;//替换是否成功的标识while(*str){if(*str==source)//找到了{*str=target;flag=1;//有过替换,则更新替换成功标识}str++;}returnflag;}1.识别字符串中的整数并转换为数字形式。(华为笔试题)问题描述:识别输入字符串中所有的整数,统计整数个数并将这些字符串形式的整数转换为数字形式整数。要求实现函数:voidtake_num(constchar*str,int*n,unsigned6、int*outArray)【输入】str:输入的字符串【输出】n:统计识别出来的整数个数outArray:识别出来的整数值,其中outArray[0]是输入字符串中从左到右第一个整数,outArray[1]是第二个整数,依此类推。【返回】无注:(1)、不考虑字符串中出现的正负号(+、-),即所有转换结果为非负整数(包括0和正整数)(2)、不考虑转换后整数超出范围情况,即测试用例中可能出现的最大整数不会超过unsignedint可处理的范围(3)、需要考虑’0’开始的数字字符串情况,比如”00035”,7、应转换为整数35;”000”应转换为整数0;”00.0035”应转换为整数0和35(忽略小数点:mmm.nnnnnn当成两个整数mmm和nnnnnn来识别)(4)输入字符串假定不会超过100字节。【示例】输入:ab00cd+123fght456-253.005fgh输出:n=6outArray={0,123,456,25,3,5}voidtake_num(constchar*str,int*n,unsignedint*outArray){intisnum=0;//定义一个是否为数字的标识,0--不是,8、1--是intnum;//数字字符对应的整数数字*n=0;//整数个数清0while(*str)//字符串未处理完毕{if(*str>='0'&&*str<='9')//是数字字符{num=*str-'0';//转换为数字形式if(isnum)//如果前一个字符是数字字符,则当前字符是某个整数的非第1个数字字符outArray[*n]=outArray[*n]*10+num;else//前一个字符不是数字字符,则当前字符是某个整数的第1个数字字符{out
5、arsource,chartarget){intflag=0;//替换是否成功的标识while(*str){if(*str==source)//找到了{*str=target;flag=1;//有过替换,则更新替换成功标识}str++;}returnflag;}1.识别字符串中的整数并转换为数字形式。(华为笔试题)问题描述:识别输入字符串中所有的整数,统计整数个数并将这些字符串形式的整数转换为数字形式整数。要求实现函数:voidtake_num(constchar*str,int*n,unsigned
6、int*outArray)【输入】str:输入的字符串【输出】n:统计识别出来的整数个数outArray:识别出来的整数值,其中outArray[0]是输入字符串中从左到右第一个整数,outArray[1]是第二个整数,依此类推。【返回】无注:(1)、不考虑字符串中出现的正负号(+、-),即所有转换结果为非负整数(包括0和正整数)(2)、不考虑转换后整数超出范围情况,即测试用例中可能出现的最大整数不会超过unsignedint可处理的范围(3)、需要考虑’0’开始的数字字符串情况,比如”00035”,
7、应转换为整数35;”000”应转换为整数0;”00.0035”应转换为整数0和35(忽略小数点:mmm.nnnnnn当成两个整数mmm和nnnnnn来识别)(4)输入字符串假定不会超过100字节。【示例】输入:ab00cd+123fght456-253.005fgh输出:n=6outArray={0,123,456,25,3,5}voidtake_num(constchar*str,int*n,unsignedint*outArray){intisnum=0;//定义一个是否为数字的标识,0--不是,
8、1--是intnum;//数字字符对应的整数数字*n=0;//整数个数清0while(*str)//字符串未处理完毕{if(*str>='0'&&*str<='9')//是数字字符{num=*str-'0';//转换为数字形式if(isnum)//如果前一个字符是数字字符,则当前字符是某个整数的非第1个数字字符outArray[*n]=outArray[*n]*10+num;else//前一个字符不是数字字符,则当前字符是某个整数的第1个数字字符{out
此文档下载收益归作者所有