问答题 下列给定程序中,函数proc()的功能是:从字符串str中,删除所有小写字母c。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
void proc(char*str)
{
int i, j;
for(i=j=0; str[i]!="/0"; i++)
if(str[i]!="c")
//****found****
str[j]=str[i];
//****found****
str[i]="/0";
}
void main()
{
char str[80];
printf("/nEnter a string: ");
gets(str);
printf("The original string: ");
puts(str);
proc(str);
printf("The string after deleted: ");
puts(str); printf("/n/n");
}
【正确答案】
【答案解析】(1)错误:str[j]=str[i];
正确:str[j++]=str[i];
(2)错误:str[i]="/0";
正确:str[j]="/0"; [解析] 按照题目要求删除所有的小写字母“c”,可以将字符串中所有不是小写字母“c”的字符放入字符串str中,形成一个新的字符串,因此,“str[j]=str[i];”应改为“str[j++]=str[i];”。最后为新的字符串添加结束符,由函数proc()可知,变量j为新的字符串的下标,因此,“str[i]="/0";”应改为“str[j]="/0";”。