Chinaunix首页 | 论坛 | 博客
  • 博客访问: 366988
  • 博文数量: 53
  • 博客积分: 139
  • 博客等级: 入伍新兵
  • 技术积分: 589
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-27 01:55
个人简介

学习linux,学习编程。

文章分类

全部博文(53)

文章存档

2019年(1)

2018年(4)

2016年(4)

2014年(11)

2013年(33)

分类: C/C++

2018-04-21 22:44:55

最近看了《C程序设计语言》的一部分内容,做了一下编程练习。练习的题目是这样的:重新编写函数squeeze(s1, s2) ,将字符串s1中任何与字符串s2中字符匹配的字符都删除。本人自己写了一段程序,然后看了一下参考答案,接着对自己的程序做了一些修改。修改以后觉得比较满意。这一段程序,跟参考答案的相似度超过了75%。这样发出來不知道合不合适,请大家多多指教。

下面是程序代码:

点击(此处)折叠或打开

  1. /* squeeze: delete each char in s1 which is in s2            */

  2. void squeeze(char s1[], char s2[])
  3. {
  4.     int i, j, k, n;
  5.     for (n = 0; s2[n] != '\0'; n++)
  6.         ;            /* number chars of s2[]        */
  7.     for (i = k = 0; s1[i] != '\0'; i++)
  8.     {
  9.         for (j = 0; j < n && s2[j] != s1[i]; j++)
  10.             ;
  11.         if (s2[j] == '\0')        /* end of string - no match */
  12.             s1[k++] = s1[i];
  13.     }
  14.     s1[k] = '\0';
  15. }




                    图一 修改过的练习2-4的程序
阅读(2516) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~