题目:编写函数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语言 + 详细注释)相关推荐

  1. C语言试题七十三之请编写函数求两个数的最大公约数

    1. 题目 编写函数:求两个数的最大公约数. 如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数.几个自然数公有的约数,叫做这几个自然数的公约数.公约数中最大的一个公约数,称为这几个自 ...

  2. C语言试题七十一之请编写函数求出这个数的阶乘

    1. 题目 编写函数:求出这个数的阶乘,即 n!. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试中C程序设计科目.帮助C语言学者打好程序基础.C语言基础,锻炼您的逻辑思 ...

  3. C语言试题七十之请编写函数判断年份是否为闰年

    1. 题目 编写函数:判断任意年份是否为闰年 闰年:需要满足以下条件中的任意一个: ① 该年份能被 4 整除同时不能被 100 整除: ② 该年份能被400整除. 2 .温馨提示 C语言试题汇总里可用 ...

  4. C语言试题六十三之请编写函数fun:将s所指字符串中ascii值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

    1. 题目 请编写函数fun,其功能是:将s所指字符串中ascii值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研 ...

  5. C语言试题六十一之请编写函数fun:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成新串放在t所指数组中。

    1. 题目 请编写函数fun,其功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成新串放在t所指数组中. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试中C程 ...

  6. 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程序设 ...

  7. C语言试题三十二之编写函数function,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。

    1. 题目 请编写函数function,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数). 2 .温馨提示 C试题汇总里可用于计算机二级C语言笔试.机试.研究生复 ...

  8. C语言试题三十之请编写函数function对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列。

    1. 题目 请编写函数function,对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试中C ...

  9. C语言试题二十九之编写函数int function(int lim,int aa[max])求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。

    1. 题目 编写函数int function(int lim,int aa[max]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数. 2 .温馨提示 C语 ...

  10. C语言试题二十八之编写函数function功能是:从字符中删除指定的字符,同一字母的大、小写按不同字符处理。

    1. 题目 编写函数function,该函数的功能是:从字符中删除指定的字符,同一字母的大.小写按不同字符处理. 2 .温馨提示 C试题汇总里可用于计算机二级C语言笔试.机试.研究生复试中C程序设计科 ...

最新文章

  1. 我的第一个Windows Phone 7应用程序
  2. 【Codeforces Round #430 (Div. 2) D】Vitya and Strange Lesson
  3. Winform中怎样跨窗体获取另一窗体的控件对象
  4. Linux系统下按了Ctrl+s锁定屏幕后怎么办?
  5. scss的使用方式(环境搭建)
  6. 9个小技巧助你获得职场幸福
  7. QML笔记-2种方式实现心脏跳动
  8. SpringBoot 服务监控机制,你了解多少?
  9. 25muduo_net库源码分析(一)
  10. linux搭建禅道_linux下搭建禅道项目管理系统
  11. 二叉树遍历算法(递归实现+层次遍历)
  12. 《指数型组织》学习总结
  13. java 获取全球国家名称,语言,简称
  14. 什么是TPS,什么是QPS?
  15. Python 获取 网易云音乐热门评论
  16. android端集成FTP文件下载功能
  17. Android开发 Retrofit使用
  18. 设置Jenkins语言为中文或英文
  19. ECC原理和RocketChip Cache ECC实现
  20. C是C++的子集吗?

热门文章

  1. 万智牌天使恩典oracle,万智牌幻灭时刻限制赛单卡再评价(上)
  2. Rabbit 5大模式
  3. 怎么记住1月-12月的英文
  4. 学计算机会设置路由器,Win7电脑怎么设置无线路由器上网
  5. 什么是 FreeMarker?
  6. 编程题:7-2 复数类的操作
  7. JAVA学习-JDK8环境的安装与卸载
  8. 如何链接外部JavaScript文件
  9. 电子基础篇5---三极管
  10. pap认证过程_PPP中的PAP认证