2. 改錯(cuò)題
下列給定程序中,函數(shù)fun()的功能是:依次取出字符串中所有的字母,形成新的字符串,并取代原字符串。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include
#include
void fun(char *s)
{
int i,j;
for(i=0,j=0; s[i]!= ’\0’; i++)
/**********************found***********************/
if((s[i]>= ’a’&&s[i]<= ’z’)&&(s[i]>= ’a’&&s[i]<= ’z’))
s[j++]=s[i];
/**********************found***********************/
s[j]= "\0";
}
main()
{
char item[80];
clrscr();
printf("\nenter a string: ");
gets(item);
printf("\n\nthe string is:\%s\n",item);
fun(item);
printf("\n\nthe string of changing is :\%s\n",item);
}
2. 改錯(cuò)題
(1)錯(cuò)誤:if((s[i]>= ’a’&&s[i]<= ’z’)&&(s[i]>= ’a’&&s[i]<= ’z’))
正確:if((s[i]>= ’a’&&s[i]<= ’z’)||(s[i]>= ’a’&&s[i]<= ’z’))
(2)錯(cuò)誤:s[j]= "\0";
正確:s[j]=’\0’;
【解析】錯(cuò)誤1:字母包括小寫字母和大寫字母,這里是"或"的關(guān)系,所以用"||"運(yùn)算符。
錯(cuò)誤2:字符串的結(jié)束標(biāo)志符為字符,而不是字符串。
下列給定程序中,函數(shù)fun()的功能是:依次取出字符串中所有的字母,形成新的字符串,并取代原字符串。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include
#include
void fun(char *s)
{
int i,j;
for(i=0,j=0; s[i]!= ’\0’; i++)
/**********************found***********************/
if((s[i]>= ’a’&&s[i]<= ’z’)&&(s[i]>= ’a’&&s[i]<= ’z’))
s[j++]=s[i];
/**********************found***********************/
s[j]= "\0";
}
main()
{
char item[80];
clrscr();
printf("\nenter a string: ");
gets(item);
printf("\n\nthe string is:\%s\n",item);
fun(item);
printf("\n\nthe string of changing is :\%s\n",item);
}
2. 改錯(cuò)題
(1)錯(cuò)誤:if((s[i]>= ’a’&&s[i]<= ’z’)&&(s[i]>= ’a’&&s[i]<= ’z’))
正確:if((s[i]>= ’a’&&s[i]<= ’z’)||(s[i]>= ’a’&&s[i]<= ’z’))
(2)錯(cuò)誤:s[j]= "\0";
正確:s[j]=’\0’;
【解析】錯(cuò)誤1:字母包括小寫字母和大寫字母,這里是"或"的關(guān)系,所以用"||"運(yùn)算符。
錯(cuò)誤2:字符串的結(jié)束標(biāo)志符為字符,而不是字符串。