编写整理字符串的函数char * deleteChSet(char *s1, char *s2) 删除字符串s1中所有在字符串s2中出现的字符。函数返回字符串s1。用c语言编写且含有主函数
时间: 2024-05-07 08:19:56 浏览: 12
以下是函数实现和示例代码:
```c
#include <stdio.h>
#include <string.h>
char* deleteChSet(char* s1, char* s2) {
int i, j, k;
int len1 = strlen(s1);
int len2 = strlen(s2);
for (i = j = 0; i < len1; i++) {
for (k = 0; k < len2; k++) {
if (s1[i] == s2[k]) {
break;
}
}
if (k == len2) {
s1[j++] = s1[i];
}
}
s1[j] = '\0';
return s1;
}
int main() {
char s1[100] = "This is a test string.";
char s2[10] = "aeiou";
printf("Before deleting: %s\n", s1);
deleteChSet(s1, s2);
printf("After deleting: %s\n", s1);
return 0;
}
```
函数`deleteChSet`的参数`s1`是要进行删除操作的字符串,参数`s2`是包含要删除的字符的字符串。算法是遍历`s1`中的每个字符,如果该字符不在`s2`中,则将其拷贝到`s1`的前面。最后,将`s1`的长度截断为新长度`j`,并在结尾处添加空字符`\0`。
在示例代码中,我们使用了一个测试字符串`s1`和一个包含要删除字符的字符串`s2`,并在主函数中进行测试。输出结果如下:
```
Before deleting: This is a test string.
After deleting: Ths s tst strng.
```
可以看到,所有在`s2`中的字符都被删除了。