首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
假定输入的字符串中只包含字母和·号。请编写函数fun,它的功能是:使字符串的前导·号不得多于n个;若多于n个,则删除多余的*号:若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。 例如,字符串中的内容为:*********A*BC*DE
假定输入的字符串中只包含字母和·号。请编写函数fun,它的功能是:使字符串的前导·号不得多于n个;若多于n个,则删除多余的*号:若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。 例如,字符串中的内容为:*********A*BC*DE
admin
2013-03-29
38
问题
假定输入的字符串中只包含字母和·号。请编写函数fun,它的功能是:使字符串的前导·号不得多于n个;若多于n个,则删除多余的*号:若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。
例如,字符串中的内容为:*********A*BC*DEF*G****,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为8,则字符串中的内容仍为********A*BC*DEF*G****。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。
注意:部分源程序在文件PROGl.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
void fun(char *a,int n)
{
}
main()
{ char s[81];int n;void NONO();
printf("Enter a string:\n");
gets(s);
printf("Enter n:");scanf("%d",
&n);
fun(s,n);
printf("The string after deleted:
\n");puts(s);
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调用
函数,输出数据,关闭文件。 */
FILE*in,*out;
int i,n;char s[81];
in=fopen("in.dat","r");
out=fopen("out.dat","w");
for(i=0,i<10;i++){
fscanf(in,"%s",s);
fscanf(in,"%d",&n),
fun(s,n),
fprintf(out,"%s\n",s);
}
fclose(in);
fclose(out);
}
选项
答案
int i=0,k=0; char*t=a; while(*t==’*’) { k++; t++; } t=a ; if(k>n) t=a+k—n ; while(*t) { a[i]=*t; i++; t++; } a[i]=’\0’;
解析
(1)首先由字符串头开始判断字符是否为"*"号字符,如果字符是符号"*",则对"*"号进行统计。
(2)根据统计的"*"号数目结合题目中对"*"号个数的要求,判断是执行对"*"号的截取操作,还是什么都不用做。
(3)然后将其他的所有字符拷贝到字符串,最后记得在新串s的末尾加上结束符"’\n’"。
转载请注明原文地址:https://www.kaotiyun.com/show/SXJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
数据结构中,与所使用的计算机无关的是数据的()
阅读下面程序,则程序的执行结果为【】。#include"stdio.h"main(){inta=30,b=20,z;z=fun(a+b,a-b);printf("
将代数式转换成程序设计中的表达式为【】。
有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是structnode{chardata;structnode*next;}a,b,*p=&a,*q=&b
以下不能对二维数组a进行正确初始化的语句是
若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是
定义长度为12的数组,下面四种方法中正确的有【】。①intx[12];②intn=12;③constintn=12;④intx[]={1,2};int
以下程序段用于构成一个简单的单向链表。请填空。struetSTRU{intx,y;floatrate;【】p;}a,b;a.x=0;a.y=0;a.rate=0;a.p=
函数fun的功能是:根据以下公式求p的值,结果由函数值返回。m与n为两个正数且要求m>n。例如:m=12,n=8时,运行结果应该是495.000000。请在题目的空白处填写适当的程序语句,将该程序补充完整。#include<con
随机试题
对具体行政行为判决合法的表述为()
溃疡穿孔的典型症状体征_______。
慢性肺源性心脏病失代偿期心功能失代偿多表现为
不发生相互作用的免疫细胞膜分子是
由于内部控制方面的漏洞,很多金融机构在衍生产品交易中遭受巨额损失,而且短期内难以筹措足够的资金平仓,出现严重的()危机。
2,6,15,32,65,()
重复抵押,是指债务人以同一抵押物分别向数个债权人为抵押行为,包括形式上的重复抵押和实质上的重复抵押。形式上的重复抵押,是指债务人将同一抵押物内各个具有独立价值的部分分别抵押给数个债权人。实质上的重复抵押,是指债务人将同一抵押物的全部价值分别向数个债权人抵押
设函数f(x)在(-∞,+∞)内有定义,x0≠0是函数f(x)的极大值点,则().
数据库系统出现故障是不可避免的。当数据库系统出现事务故障和系统故障时需使用数据库的【12】文件进行恢复。
Jeanswereinventedalittleoveracenturyagoandarecurrentlytheworld’smostpopular,versatilegarment,crossingboundari
最新回复
(
0
)