最近看了《C程序设计语言》的一部分内容,做了一下编程练习。练习的题目是这样的:重新编写函数squeeze(s1, s2) ,将字符串s1中任何与字符串s2中字符匹配的字符都删除。本人自己写了一段程序,然后看了一下参考答案,接着对自己的程序做了一些修改。修改以后觉得比较满意。
这一段程序,跟参考答案的相似度超过了75%。这样发出來不知道合不合适,请大家多多指教。
下面是程序代码:
-
/* squeeze: delete each char in s1 which is in s2 */
-
-
void squeeze(char s1[], char s2[])
-
{
-
int i, j, k, n;
-
for (n = 0; s2[n] != '\0'; n++)
-
; /* number chars of s2[] */
-
for (i = k = 0; s1[i] != '\0'; i++)
-
{
-
for (j = 0; j < n && s2[j] != s1[i]; j++)
-
;
-
if (s2[j] == '\0') /* end of string - no match */
-
s1[k++] = s1[i];
-
}
-
s1[k] = '\0';
-
}
图一
修改过的练习2-4的程序
阅读(2516) | 评论(0) | 转发(0) |