最近看了《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. }


C语言程序练习2-4:将字符串s1中任何与字符串s2中字符匹配的字符都删除-LMLPHP

                    图一 修改过的练习2-4的程序
11-08 10:56