A-A+

下列给定程序中 函数fun()的功能是:依次取出字符串中所有的数字字符 形成新的字符串 并取

2022-08-05 20:17:56 问答库 阅读 171 次

问题详情

下列给定程序中,函数fun()的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。
请改正函数fun()中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <stdio.h>
include <conio.h>
void fun(char *s)
{int i,j;
for(i=0,j=0; s[i]!= ""; i++)
if(s[i]>= "0"&&s[i]<= "9")
/*************found**************/
s[j]=s[i];
/*************found**************/
s[j]="";
}
main()
{char item[80];
clrscr();
printf("nEnter a string: ");gets(item);
printf("nnThe string is:%sn", item);
fun(item);
printf("nnThe string of changing is :
%sn",item);
}请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:(1)错误;s[j]=s[i]; 正确:s[j++]=s[i];(2) 错误:s[j]="\0"; 正确:s[j]='\0';
(1)错误;s[j]=s[i]; 正确:s[j++]=s[i];(2) 错误:s[j]="\0"; 正确:s[j]='\0'; 解析:有循环条件if(s[i]>='0'&&s[i]<='9')以及题目要求“依次取出字符串中所有的数字字符”可知,s[j]=s[i];表述错误。s[j]="\0";中是一个常识性语法错误,学习者只要在平时训练的时候注意一下就可以了。

考点:字符串,函数