下面程序的Squeeze函数的功能是删除字符串s中所出现的与变量c相同的字符。 注意:请将修改正确后的完整源程序拷贝粘贴到答题区内。 对于没有错误的语句,请不要修改,修改原本正确的语句也要扣分。 当且仅当错误全部改正,且程序运行结果调试正确,才给加5分。 改错时不能改变程序原有的意图,不能改变函数原型。 **输入输出格式要求:不要增加输入提示信息; 按原题要求,先输入字符串s,回车换行后再输入字符c (c为任意字符)。不能修改函数原型。 #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-01-24 21:03:55 浏览: 40
修改后的完整源程序如下:
```c
#include <stdio.h>
void Squeeze(char *s, char c);
int main() {
char a[80], c, *s;
scanf("%s", a);
getchar(); // 因为后面要读入一个字符,所以需要在此处多读入一个字符,然后丢弃
scanf("%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'; // 将新字符串的结尾置为 '\0'
}
```
主要的修改如下:
1. `main()` 函数中的 `p` 应改为 `a`。
2. `scanf("%c",c)` 应改为 `scanf("%c", &c)`,同时要在前面加上 `getchar()`,以读入多余的回车符,避免影响后面的输入。
3. `Squeeze(char *s, char c);` 应改为 `Squeeze(s, c);`,因为函数调用时不需要再次声明函数的返回值类型和参数类型。
4. `for (i=0; *s+i !=' \0'; i++);` 中的分号应删除,否则循环体中的代码将不会执行。
5. `if (*s+i != 'c')` 应改为 `if (*(s + i) != c)`,因为 `c` 是变量,而不是字符 `'c'`。
6. `*s+j = *s+i;` 应改为 `*(s + j) = *(s + i);`,因为指针的加法运算需要用括号括起来。
7. `*s+i = '\0';` 应改为 `*(s + j) = '\0';`,因为新字符串的结尾应该是 `j` 所指向的位置,而不是 `i` 所指向的位置。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)