大学职业搜题刷题APP
下载APP
首页
课程
题库模板
Word题库模板
Excel题库模板
PDF题库模板
医考护考模板
答案在末尾模板
答案分章节末尾模板
题库创建教程
创建题库
登录
logo - 刷刷题
创建自己的小题库
搜索
【简答题】

[说明]
函数encode()和decode()分别通过参数传递实现对字符串的变换和复原,返回值均为处理以后的字符串长度。变换函数encode()顺序考察已知字符串的字符,按以下规则逐组生成新字符串:
(1)若已知字符串的当前字符不是数字字符,则复制该字符于新字符串中;
(2)若已知字符串的当前字符是一个数字字符,且它之后没有后继字符,则简单地将它复制到新字符串中;
(3)若已知字符串的当前字符是一个数字字符,并且还有后继字符,设该数字值为n,则将其后继字符重复复制n+1次到新字符串中;
(4)以上述一次变换为一组,在不同组之间另插入一个下划线‘_’用于分隔。
例如:encode()函数对字符中26a3t2的变换结果为666_a_tttt_2。
函数decode()用于经函数encode()处理的字符中,即复制不连续相同的单个字符,而将一组连续相同的字符(不超过10个)变换成一个用于表示重复次数的数字符和一个重复出现的字符,并在复原过程中掠过变换函数为不同组之间添加的一个下划线字符。
注:假定调用变换函数encode()时的原始字符串中不包含下划线字符。
[函数]
int encode(char *instr,char *outstr)
char *ip, *op,c;
int k,n;
ip=instr;
op=outstr;
while ( * ip)
if(*ip>=’0’&&*ip<=’9’&&*(ip+l))
n=*ip-’0’+1;
c= (1) ;
for (k=0;k<n;k++) *op++=c;

else *op++=*ip;
(2) ;
ip++;
if (op>outstr) (3) ;
*op=’\0’;
(4) ;int decode(char *instr,char *outstr)
char *ip,*op,c;
int n;
ip=instr; op=outstr;
while ( *ip)
c=*ip;
n=0;
while( *ip==c&&n<10) (5) ; n++;
if(n>1) *op+ + =’0’+n-1;
* op++=c;
if(*ip==’_’) ip++;
*op=’\0’;
(4) ;

手机使用
分享
复制链接
新浪微博
分享QQ
微信扫一扫
微信内点击右上角“…”即可分享
反馈
收藏 - 刷刷题收藏
举报
参考答案:
举一反三

【多选题】函数的参数传递包括

A.
按值传递
B.
按引用传递
C.
按变量传递
D.
按作用域传递

【多选题】0开头的数字字符如何输入?

A.
提前将单元格设为文本格式
B.
先输入英文单引号'再输入数字
C.
直接输入
D.
提前将单元格格式设为左对齐
相关题目:
【多选题】函数的参数传递包括
A.
按值传递
B.
按引用传递
C.
按变量传递
D.
按作用域传递
【多选题】0开头的数字字符如何输入?
A.
提前将单元格设为文本格式
B.
先输入英文单引号'再输入数字
C.
直接输入
D.
提前将单元格格式设为左对齐
刷刷题-刷题-导入试题 - 刷刷题
参考解析:
AI解析
重新生成
题目纠错 0
发布
刷刷题-刷题-导入试题 - 刷刷题刷刷题-刷题-导入试题 - 刷刷题刷刷题-刷题-导入试题 - 刷刷题
刷刷题-刷题-导入试题 - 刷刷题
刷刷题-刷题-导入试题 - 刷刷题
刷刷题-单词鸭