#include <stdio.h> char lon(const char a[], const char b) { int i,t; char p[50]; t = 0; for (i = 0; i < 50; i++) { if (a[i] == b) continue; else { p[t] = a[i]; t++; } } return p; } int main() { int i; char a[50]; char j[50]; char b; printf("Input a string:"); gets(a); printf("Input a char:"); scanf("%c", &b); j = lon(a, b); printf("After deleted,the string is:%c", j); return 0; }修正程序
时间: 2024-01-14 16:01:56 浏览: 52
这段程序有一些错误,需要进行修正。下面是修正后的程序:
```c
#include <stdio.h>
void lon(const char a[], const char b, char p[]) {
int i,t = 0;
for (i = 0; i < 50; i++)
{
if (a[i] == '\0') // 判断是否到了字符串的结尾
break;
if (a[i] == b)
continue;
else
{
p[t] = a[i];
t++;
}
}
p[t] = '\0'; // 在新字符串的结尾添加 '\0'
}
int main() {
char a[50];
char j[50] = ""; // 初始化新字符串为 ""
char b;
printf("Input a string:");
fgets(a, 50, stdin); // 使用 fgets 函数读取字符串
printf("Input a char:");
scanf("%c", &b);
lon(a, b, j); // 将新字符串作为参数传入函数中
printf("After deleted, the string is:%s", j); // 输出新字符串
return 0;
}
```
修正后的程序将原来的返回值改为了通过函数参数传递新字符串,使用了更加安全的 fgets 函数读取字符串,并且在新字符串的结尾添加了 '\0'。同时,将变量的初始化也进行了修改。
阅读全文