纠正程序#include <stdio.h> void Squeeze(char *s, char c); main() { char a[80],c, *s; scanf("%s",p); scanf("%c",c); Squeeze(char *s, char c); printf("%s\n",s); } void Squeeze(char *s, char c); { int i,j; for (i=0; *s+i !=' \0'; i++); { if (*s+i != 'c') { *s+j = *s+i; j++; } *s+i = '\0'; } }
时间: 2024-03-22 11:40:30 浏览: 70
好的,这是你需要的代码,我纠正了其中的错误:
```c
#include <stdio.h>
void Squeeze(char *s, char c);
int main() {
char a[80], c, *s;
scanf("%s", a);
scanf(" %c", &c); // 注意要在 %c 前添加一个空格,避免读取前面的回车符
s = a; // 将指针 s 指向数组 a 的首地址
Squeeze(s, c);
printf("%s\n", s);
return 0;
}
void Squeeze(char *s, char c) {
int i, j;
for (i = 0, j = 0; *(s + i) != '\0'; i++) { // 注意要使用指针的形式访问字符串中的字符
if (*(s + i) != c) {
*(s + j) = *(s + i);
j++;
}
}
*(s + j) = '\0';
}
```
这个程序实现了一个字符串中删除指定字符的功能。用户输入一个字符串和一个字符,程序将字符串中的所有指定字符删除,并输出删除后的字符串。注意,scanf 函数在读取字符时,需要在格式控制字符串中加入一个空格,以避免读取前面的回车符。在调用 Squeeze 函数时,需要传入字符串的首地址和指定的字符。在 Squeeze 函数中,使用指针的形式访问字符串中的字符,将不等于指定字符的字符复制到原字符串的前面,最后在末尾添加'\0',表示字符串的结束。
阅读全文