字符串练习题(含参考代码)_第1页
字符串练习题(含参考代码)_第2页
字符串练习题(含参考代码)_第3页
字符串练习题(含参考代码)_第4页
字符串练习题(含参考代码)_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、字符串练习题1. 字符串常用函数编程实现。(1) 求长度:int myStrLen( const char *str )(2) 字符串拷贝: char *myStrCpy( char *strSource, const char *strTarget)char *p1, *p2;for( p1=strSource, p2=strTarget; *p2 !=0; p1+, p2+) *p1 = *p2;*p1=0;P1=strSource; p2=strTarget;While( *p1+ = *p2+ ) ;(3) 字符串连接: char *myStrCat( char *strSource,

2、 const char *strTarget)char *p1, *p2;/指针要移到字符串strSource的末尾while( *p1 != 0 ) p1+;/while( *p1+);p2=strTarget;while (*p2!=0)*p1=*p2; p1+;p2+;*p1=0;/while(*p1+=*p2+) ; (4) 字符串比较: int myStrCmp(const char * str1, const char * str2)2. 判断字符串是否回文。是回文,返回1, 不是,则返回0.int isHuiWen(const char * str )int flag=0;/先设

3、为不是,返回0char *pstart, *pend;/指向字符中头、尾的指针pend = str;while ( *pend ) pend+;/将pend移到字符串末尾pend-; /退回到最后一个有效字符处/开始判断pstart = str;while ( *pstart = *pend && pstart < pend )/前后端字符相同,且未比较完pstart+; pend-; /移动指针if( pstart < pend ) return 0;/不是回文else return 1;3. 字符串替换函数。(在字符串str中查找是否有子串source,若有,将

4、其替换为target子串。替换成功返回1,替换不成功返回0.int strReplace( char * str, char *source, char * target)/这道题出超界了,改改3. 在字符串str中查找是否有字符source,若有,将其替换为字符target。替换成功返回1,替换不成功返回0.int strReplace(char *str, char source, char target)int flag=0;/替换是否成功的标识while( *str )if( *str = source )/找到了*str = target;flag = 1;/有过替换,则更新替换成功

5、标识str+;return flag;4. 识别字符串中的整数并转换为数字形式。(华为笔试题)问题描述:识别输入字符串中所有的整数,统计整数个数并将这些字符串形式的整数转换为数字形式整数。要求实现函数:void take_num( const char *str, int *n, unsigned int *outArray)【输入】str : 输入的字符串【输出】n: 统计识别出来的整数个数outArray:识别出来的整数值,其中outArray0是输入字符串中从左到右第一个整数,outArray1是第二个整数,依此类推。【返回】无注:(1)、不考虑字符串中出现的正负号(+、-),即所有转换

6、结果为非负整数(包括0和正整数)(2)、不考虑转换后整数超出范围情况,即测试用例中可能出现的最大整数不会超过unsigned int可处理的范围(3)、需要考虑0开始的数字字符串情况,比如”00035”,应转换为整数35;”000”应转换为整数0;”00.0035”应转换为整数0和35(忽略小数点:mmm.nnnnnn当成两个整数mmm和nnnnnn来识别)(4)输入字符串假定不会超过100字节。【示例】输入:ab00cd+123fght456-25 3.005fgh输出:n=6outArray=0, 123, 456, 25, 3, 5void take_num( const char *s

7、tr, int *n, unsigned int *outArray)int isnum = 0; /定义一个是否为数字的标识,0-不是,1-是int num; /数字字符对应的整数数字*n = 0;/整数个数清0while( *str )/字符串未处理完毕if( *str>='0' && *str<='9' )/是数字字符num = *str - '0' /转换为数字形式if( isnum ) /如果前一个字符是数字字符,则当前字符是某个整数的非第1个数字字符outArray*n = outArray*n * 10 + num;else /前一个字符不是数字字符,则当前字符是某个整数的第1个数字字符outArray*n = num; /直接赋值isnum = 1; /置出现了数字的标识/如果下一个字符不是数字字符,则 整数个数要加1if( *(str+1) <'0' | *(str+1) >'9' )(*n)+;else /如果不是数字字符,则置不是数字字符的标识isnum = 0;str+;main( )char s100; int n=0 , i;unsigned int out100=0;gets( s);take_num( s, &

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论