用devc++编写设计一个算法,从顺序串S中删除值等于c的所有字符。已知串S=“a,b,c,d,e,c,f”
时间: 2024-01-05 14:03:32 浏览: 69
算法步骤如下:
1. 定义一个指针p,指向串S的第一个字符;
2. 从串S的第一个字符开始,依次遍历每个字符;
3. 如果当前字符不等于要删除的字符c,则将该字符复制到指针p所指向的位置,并将指针p向后移动一位;
4. 如果当前字符等于要删除的字符c,则直接跳过该字符;
5. 当遍历完整个串S后,将指针p所指向的位置置为结束符'\0',表示新串的结束;
6. 返回新串。
以下是C语言代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* deleteChar(char* s, char c) {
if (s == NULL) {
return NULL;
}
int len = strlen(s);
char* newS = (char*)malloc(len + 1);
char* p = newS;
for (int i = 0; i < len; i++) {
if (s[i] != c) {
*p++ = s[i];
}
}
*p = '\0';
return newS;
}
int main() {
char* s = "a,b,c,d,e,c,f";
char c = 'c';
char* newS = deleteChar(s, c);
printf("%s\n", newS);
free(newS);
return 0;
}
```
输出结果为:a,b,d,e,f
阅读全文