2022年字符串类笔试题 .pdf

上传人:C****o 文档编号:34258808 上传时间:2022-08-15 格式:PDF 页数:4 大小:35.32KB
返回 下载 相关 举报
2022年字符串类笔试题 .pdf_第1页
第1页 / 共4页
2022年字符串类笔试题 .pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《2022年字符串类笔试题 .pdf》由会员分享,可在线阅读,更多相关《2022年字符串类笔试题 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1. 库函数的实现strcpy 的函数原型:char *strcpy( char *strDest, const char *strSrc) 其中 strDest 是目的字符串,strSrc 是源字符串。char *strcpy( char *strDest, const char *strSrc) if ( strDest = NULL | strSrc = NULL ) return NULL ; if ( strDest = strSrc) return strDest ; char *tempptr = strDest ; while( (*strDest+ = *strSrc+) !

2、= /0)return tempptr ; strlen 的函数原型:int strlen( const char *str ) assert( strt != NULL ); /断言字符串地址非0 int len;while ( (*str+) != 0 ) len+; return len; 12. 已知 String 类定义如下:classString public: String(const char *str = NULL ); / 通用构造函数String(const String &another); / 拷贝构造函数 String(); / 析构函数String & opera

3、ter =(const String &rhs); / 赋值函数private: char *m_data; / 用于保存字符串; 尝试写出类的成员函数实现。/String(const char* str) String:String( const char *str) if ( str = NULL ) /strlen 在参数为NULL 时会抛异常才会有这步判断 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - m_data =

4、 new char1 ; m_data0 = 0 ; else m_data = new charstrlen(str) + 1; strcpy(m_data, str); ; /String(const String& str) String:String( const String &another) m_data = new charstrlen(another.m_data) + 1; strcpy(m_data, other.m_data); /String& operator=(const String& str) String& String: operator =(const

5、String &rhs) if ( this = &rhs) return *this ; delete m_data;/删除原来的数据,新开一块内存m_data = new charstrlen(rhs.m_data) + 1; strcpy(m_data,rhs.m_data); return *this ; /String() String:String() delete m_data ; 2. 字符串移动和修改1 编写一个函数, 作用是把一个char 组成的字符串循环右移n 个。比如原来是 abcdefghi “,如果 n=2,移位后应该是“hiabcdefg ” 。(1)使用标准库函

6、数方法:void LoopMove( char *pStr, int steps) int n = strlen(pStr) - steps; char tempMAX_LEN ; strcpy(temp, pStr + n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - strcpy(temp + steps, pStr); *(temp + strlen(pStr) = 0;strcpy(pStr, temp); (2)

7、不使用标准库函数的方法:请看第 3 题和评论2、将一句话里的单词进行倒置,标点符号不倒置。比如一句话:i come from beijing. 倒置后变成: beijing. from come i 。解析:解决该问题可以分为两步:第一步全盘置换该语句成:.gnijieb morf emoc i 。第二步进行部分翻转,如果不是空格,则开始翻转单词。#include using namespace std; int main () int num = -12345, i=0, j=0, flag=0, begin, end; char str = i come from beijing. ; c

8、har temp; j = strlen(str) - 1; /第一步是进行全盘翻转while(ji) temp = stri; stri+ = strj; strj-=temp; /第二步进行部分翻转i=0; while(stri) if(stri != ) begin = i; while (stri & stri != ) i+; /找到 stri 为空格符i = i - 1; /空格符回退一个end = i; while(end begin) / 部分翻转 temp = strbegin; strbegin+ = strend; strend- = temp; 名师资料总结 - - -

9、精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - i+; cout string: str endl; 3、编程:输入一行字符串,找出其中出现的相同且长度最长的字符串,输出它及其首字符的位置。例如: “yyabcdabjcabceg” ,输出结果应该为abc 和 3。#include #include using namespace std; int main () String str, tep; cout str; for(int i = str.l

10、ength() - 1; i 1; i-) for(int j = 0; j str.length(); j+) if (j + i = str.length() size_t t = 0; size_t num = 0; tep = str.substr(j, i); /从大到小去字串t = str.find(tep); /正序查找num = str.rfind(tep); /逆序查找if(t != num) /如果两次查找的位置不一致说明存在重复 cout tep t+1 endl; return 0; return 0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁