#include<stdio.h> void delchar(char *s,char c) { int i,j; for(i=0;s[i]!='\0';i++) { if(s[i]==c) { for(j=i;s[j+1]!='\0';j++) s[j]=s[j+1]; s[j]='\0'; i--; } } } int main() { void delchar(char *s,char c); char s[100]; char c; gets(s); scanf("%c",&c); delchar(s,c); printf("%s",s); return 0; }详细解释每句代码的意思
时间: 2024-01-17 21:06:09 浏览: 63
这段代码定义了一个函数 `delchar(char *s,char c)`,用于删除字符串 `s` 中所有的字符 `c`。具体解释如下:
```c
#include<stdio.h> // 引入头文件 stdio.h
// 定义函数 delchar(char *s,char c)
void delchar(char *s,char c) {
int i,j;
// 遍历字符串 s 中的每个字符
for(i=0;s[i]!='\0';i++) {
// 如果字符等于 c
if(s[i]==c) {
// 将 s 中 i 号位置之后的字符往前一个位置挪
for(j=i;s[j+1]!='\0';j++)
s[j]=s[j+1];
// 将字符串最后一位设为 '\0',相当于删除了一个字符
s[j]='\0';
// 将 i 后移一个位置,因为后面的字符已经往前挪了一个位置
i--;
}
}
}
// 主函数
int main() {
// 声明函数 delchar(char *s,char c)
void delchar(char *s,char c);
// 声明字符串 s 和字符 c
char s[100];
char c;
// 从标准输入中读入字符串和字符
gets(s);
scanf("%c",&c);
// 调用 delchar 函数删除字符串 s 中所有的字符 c
delchar(s,c);
// 输出删除后的字符串 s
printf("%s",s);
return 0;
}
```
注:此代码存在缺陷,如果字符串中出现连续多个字符 `c`,只会删除第一个字符 `c`,而不会删除后面的字符 `c`。
阅读全文