/*
squeeze(s1,s2) 将字符串S1中任何与字符串S2中字符匹配的字符都删除
自己写的
squeeze(s1,s2) 将字符串S1中任何与字符串S2中字符匹配的字符都删除
*/
答案:
#include <stdio.h>
#include <string.h>
void squeeze(char s[],char t[])
{
int i,j;
int k=0;
for (i=0;s[i]!='\0';i++)
{
for (j=0;t[j]!='\0'&&t[j]!=s[i];j++)
{
;
}
if (t[j]=='\0')
{
s[k++] = s[i];
}
}
s[k] = '\0';
}
void main()
{
char s1[11] = "acdcdvwdaf";
char s2[5] = "sd";
squeeze(s1,s2);
printf("%s\n",s1);
}
自己写的
#include <stdio.h>
#include <string.h>
char squeeze(char s[],char t[])
{
int i,j;
int k=0;
for (i=0;s[i]!='\0';i++)
{
bool delFlg = false;
for (j=0;t[j]!='\0';j++)
{
/* 出现相同字符则将删除标志位置为ture并跳出当前循环*/
if (t[j] == s[i])
{
delFlg = true;
break;
}
}
/* 判断标志位,若不为真则将该字符串放入新字符串中 */
if (!delFlg)
{
s[k++] = s[i];
}
}
s[k] = '\0';/*增加字符串结尾标志*/
return 0;
}
void main()
{
char s1[11] = "acdcdvwdaf";
char s2[5] = "sd";
squeeze(s1,s2);
printf("%s\n",s1);
}