用C语言完善代码,从字符串s1中删除字符串s2所包含的字符,记得补充注释。例如:s1为“helloword”,s2为“eo”,程序执行后,s1变为“hllwrd”,代码如下:#include <stdio.h> void main() { char s1[81]="helloword",s2[81]="eo"; char *p1=s1,*p2,*p3; // //; while(*p1) { p2=s2; while(*p2&&(// //)) p2++; if(*p2=='\0') *p3++=*p1; p1++; } // //; printf("%s\n",s1); getch(); }
时间: 2023-06-06 14:04:20 浏览: 47
```c
#include <stdio.h>
#include <string.h>
void delete_chars(char *s1, char *s2)
{
int i, j, k;
int len1 = strlen(s1);
int len2 = strlen(s2);
int flags[128] = {0}; // 标记ascii码对应的字符是否出现过
for (i = 0; i < len2; i++) {
flags[s2[i]] = 1; // 标记s2中包含的字符
}
k = 0;
for (i = 0; i < len1; i++) {
if (flags[s1[i]] == 0) { // 如果s1中的字符不包含在s2中
s1[k++] = s1[i]; // 将该字符保留
}
}
s1[k] = '\0'; // 补充字符串结束标志
}
int main()
{
char s1[100], s2[100];
printf("请输入字符串s1:");
scanf("%s", s1); // 输入字符串s1
printf("请输入字符串s2:");
scanf("%s", s2); // 输入字符串s2
delete_chars(s1, s2); // 调用删除字符的函数
printf("删除后的字符串为:%s", s1); // 输出删除后的字符串
return 0;
}
```