c语言expand函数,练习 3-3 编写函数expand(s1, s2) (C语言 + 详细注释)
题目:编写函数expand(s1, s2),将字符串s1中类似于a-z一类的速记符号在字符串s2中扩展为等价的完整列表abc···xyz。该函数可以处理大小写字母和数字,并可以处理a-b-c、a-z0-9与-a-z等类似的情况
思路:遍历字符串的每一个字符,先找到'-',看它两侧的字符是否是同一类型的,是的话就扩展否则就不扩展
代码:
void expand(char* s1, char* s2) {
int i, j, m;
j = 0;
for (i = 0; s2[i]; i++)
if (s2[i] != '-') //以‘-’为参照,看它前后是否为同一类型
s1[j++] = s2[i]; //非‘-’的字符直接复制
else {
if (islower(s2[i - 1]) && islower(s2[i + 1]) || isdigit(s2[i - 1]) && isdigit(s2[i + 1])) { //是同一类型
int k = s2[i + 1] - s2[i - 1]; //k表示要补充的字符数
for (m = 1; m < k; m++)
s1[j++] = s1[i - 1] + m;
}
else //‘-’两侧的字符不是同类的,就把‘-’赋过去
s1[j++] = '-';
}
s1[j] = '\0'; //别忘了\0
}
呆码农梦中识bug,程序员哭求加工资
发布了28 篇原创文章 · 获赞 10 · 访问量 375
私信
关注
标签:字符,++,s2,s1,C语言,字符串,expand
来源: https://blog.csdn.net/qq_45472866/article/details/104059573
c语言expand函数,练习 3-3 编写函数expand(s1, s2) (C语言 + 详细注释)相关推荐
- C语言试题七十三之请编写函数求两个数的最大公约数
1. 题目 编写函数:求两个数的最大公约数. 如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数.几个自然数公有的约数,叫做这几个自然数的公约数.公约数中最大的一个公约数,称为这几个自 ...
- C语言试题七十一之请编写函数求出这个数的阶乘
1. 题目 编写函数:求出这个数的阶乘,即 n!. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试中C程序设计科目.帮助C语言学者打好程序基础.C语言基础,锻炼您的逻辑思 ...
- C语言试题七十之请编写函数判断年份是否为闰年
1. 题目 编写函数:判断任意年份是否为闰年 闰年:需要满足以下条件中的任意一个: ① 该年份能被 4 整除同时不能被 100 整除: ② 该年份能被400整除. 2 .温馨提示 C语言试题汇总里可用 ...
- C语言试题六十三之请编写函数fun:将s所指字符串中ascii值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。
1. 题目 请编写函数fun,其功能是:将s所指字符串中ascii值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研 ...
- C语言试题六十一之请编写函数fun:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成新串放在t所指数组中。
1. 题目 请编写函数fun,其功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成新串放在t所指数组中. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试中C程 ...
- C语言试题六十之请编写函数fun,计算并输出下列级数和:s=1/1*2+1/2*3+…+1/n(n+1)
1. 题目 编写函数fun,它的功能时:计算并输出下列级数和: s=1/1*2+1/2*3+-+1/n(n+1) 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试中C程序设 ...
- C语言试题三十二之编写函数function,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。
1. 题目 请编写函数function,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数). 2 .温馨提示 C试题汇总里可用于计算机二级C语言笔试.机试.研究生复 ...
- C语言试题三十之请编写函数function对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列。
1. 题目 请编写函数function,对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试中C ...
- C语言试题二十九之编写函数int function(int lim,int aa[max])求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。
1. 题目 编写函数int function(int lim,int aa[max]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数. 2 .温馨提示 C语 ...
- C语言试题二十八之编写函数function功能是:从字符中删除指定的字符,同一字母的大、小写按不同字符处理。
1. 题目 编写函数function,该函数的功能是:从字符中删除指定的字符,同一字母的大.小写按不同字符处理. 2 .温馨提示 C试题汇总里可用于计算机二级C语言笔试.机试.研究生复试中C程序设计科 ...
最新文章
- 我的第一个Windows Phone 7应用程序
- 【Codeforces Round #430 (Div. 2) D】Vitya and Strange Lesson
- Winform中怎样跨窗体获取另一窗体的控件对象
- Linux系统下按了Ctrl+s锁定屏幕后怎么办?
- scss的使用方式(环境搭建)
- 9个小技巧助你获得职场幸福
- QML笔记-2种方式实现心脏跳动
- SpringBoot 服务监控机制,你了解多少?
- 25muduo_net库源码分析(一)
- linux搭建禅道_linux下搭建禅道项目管理系统
- 二叉树遍历算法(递归实现+层次遍历)
- 《指数型组织》学习总结
- java 获取全球国家名称,语言,简称
- 什么是TPS,什么是QPS?
- Python 获取 网易云音乐热门评论
- android端集成FTP文件下载功能
- Android开发 Retrofit使用
- 设置Jenkins语言为中文或英文
- ECC原理和RocketChip Cache ECC实现
- C是C++的子集吗?