程序改错题。请将程序中的错误修改正确,并按顺序填写在空中。 题目:求一个字符串的长度,在main函数中输入字符串,并输出其长度。 #include<stdio.h> int main( ) {int length(char *p); int len; char str[20]; printf("input string:"); scanf("%s"&str);//错处1 len=length(str); printf("The length of string is %d. system("pause"); return 0;} int length(char*p);//错处2{int n; n=0; while(*p!='O') //错处3 {n++; p++;} return(n);
时间: 2024-03-12 21:42:54 浏览: 59
修改后的程序如下:
```
#include <stdio.h>
int length(char *p);
int main() {
int len;
char str[20];
printf("input string:");
scanf("%s", str); // 错处1
len = length(str);
printf("The length of string is %d.", len); // 错处4
system("pause");
return 0;
}
int length(char *p) { // 错处2
int n = 0;
while (*p != '\0') { // 错处3
n++;
p++;
}
return n;
}
```
错处1:scanf函数中的&符号应该去掉,因为数组名已经是指向数组首元素的指针,不需要再取地址。
错处2:函数头中缺少了一个左大括号。
错处3:while循环条件中应该判断*p是否为字符串结束符'\0',而不是'O'。
错处4:输出语句中缺少了一个占位符%d。
顺序填写:1、2、3、4
阅读全文