#include<stdio.h> #include<string.h> void fun(char a[]); main() { char a[80]; gets(a); fun(a); puts(a); } void fun(char a[]) { /**********ERROR**********/ int i=0,j; /**********ERROR**********/ while(a[i]!='*')i++; /**********ERROR**********/ while(a[i]=='\0') a[j++]=a[i++]; a[j]='\0'; }改错
时间: 2023-07-05 07:27:45 浏览: 224
C语言—入门的小程序
5星 · 资源好评率100%
下面是改正后的代码:
```c
#include<stdio.h>
#include<string.h>
void fun(char a[]);
int main() {
char a[80];
gets(a);
fun(a);
puts(a);
return 0;
}
void fun(char a[]) {
int i=0, j=0; // 初始化变量j
while(a[i]!='*')i++;
i++; // 跳过“*”
while(a[i]!='\0') {
a[j++]=a[i++];
}
a[j]='\0'; // 添加字符串结束符
}
```
修改的细节如下:
1. 在 `main` 函数中添加 `return 0;` 语句,确保程序正常结束。
2. 在 `fun` 函数中初始化变量 `j`。
3. 在第二个 `while` 循环中,添加条件 `a[i]!='\0'`,确保不会读取到字符串结束符。
4. 在循环结束后,添加字符串结束符 `\0`。
阅读全文