首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
假定输入的字符串中只包含字母和“*”号。请编写函数fun,它的功能是:使字符串中尾部的“*”号不得多于n个;若多于n个,则删除多余的“*”号;若少于或等于n个,则什么也不做,字符串中间和前面的“*”号不删除。 例如, 字符串中的内容为:****A*BC*
假定输入的字符串中只包含字母和“*”号。请编写函数fun,它的功能是:使字符串中尾部的“*”号不得多于n个;若多于n个,则删除多余的“*”号;若少于或等于n个,则什么也不做,字符串中间和前面的“*”号不删除。 例如, 字符串中的内容为:****A*BC*
admin
2019-09-02
34
问题
假定输入的字符串中只包含字母和“*”号。请编写函数fun,它的功能是:使字符串中尾部的“*”号不得多于n个;若多于n个,则删除多余的“*”号;若少于或等于n个,则什么也不做,字符串中间和前面的“*”号不删除。
例如, 字符串中的内容为:****A*BC*DEF*G*******,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为7,则字符串中的内容仍为:****A*BC*DEF*G*******。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
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=open("in.dat","r");
out=fopen("out.dat","w");
for(i=0;i<1 0;i++){
fscanf(in,"%s",s);
fscanf(in,"%d",&n);
fun(s,n);
fprintf(out,"%s\n",s);
}
fclose(in);
fclose(out);
}
选项
答案
int i=0,j=0; char *p,*t; p=t=a; while(*t)//让指针t指向串尾 t++; t--;//t指向串中的最后一个字符 while(*t==’*’) //当t指针当前指向的字符是“*”号时 {j++;//对“*”号计数的累加器加1 t--;)}//指向前一个字符 t++;//跳出“*”号统计后,指针t继续指向字符串的下一个字符 if(j>n)//对统计的“*”号数目大于给定的“*”号总数n { while(*p&&p<t+n) //当超出给定的“*”号数目,则开始进行截取 {a[i]=*p; //截取n个“*”号 i++; p++;} a[i]=’\0’;}//对新生成的串加尾符
解析
解题过程首先确定字符串尾,然后由串尾开始对字符进行判断,同时对“*”字符进行统计,如果大于n,就进行截取。(1)首先确定字符串的结尾,然后判断“*”号字符,并对字符串中的字符进行判断,如果字符是符号“*”则对“*”号进行统计。(2)根据统计的“*”号数目结合题目中对“*”号个数的要求,判断是执行对“*”号的截取操作,还是什么都不用做。(3)所有字符处理完后,记得在新串s的末尾加上结束符“’\0’”。
转载请注明原文地址:https://kaotiyun.com/show/wORp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:(1)取x1初值为0.0;(2)x0=x1,把x1的值赋给x0:(3)xl
给定程序中,函数fun的功能是建立一个NxN的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,…依次类推。例如,若N=5,生成的矩阵为:111111
下列数据结构中,能用二分法进行查找的是
以下选项中,不合法的C语言用户标识符是
软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是
以下选项中非法的C语言字符常量是
s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是
有3个关系R、S和T如下:则由关系R和S得到关系T的操作是()。
下面不属于软件设计阶段任务的是
随机试题
红斑狼疮的病机:天疱疮的病机:
属胃黏膜保护药的是
某公司具有新产品研发能力,拟投资建设新研制产品的生产项目。该项目工程费用为24000万元,工程建设其他费用为14324万元,基本预备费费率取10%。通过对宏观经济进行分析,预计项目建设期价格水平相对稳定,拟不计涨价预备费。项目流动资金估算为15000万元。
位于水中和地下部位的混凝土,宜采用()。
背景资料:某高速公路,路面为沥青混凝土路面,基层为水泥稳定土基层,施工单位在基层施工过程中,出现以下情况:(1)由于本工程的路面属高级路面,所以采用水泥稳定细粒土做该路面的基层。(2)在选择水泥时,施工单位选择了终凝时间较短的水泥。(3)该工程采用
期货公司董事、监事和高级管理人员应当在任职前取得()核准的任职资格。
如果企业清偿因或有事项而确认的负债所需支出全部或部分预期由第三方补偿,下列表述中正确的有()。
依据游戏的社会性特点分类,可将学前儿童游戏分成独自游戏、平行游戏、联合游戏和()。
Ifyoustarteachdaydesperatelywishingforanextrahourinbed,thefollowingislikelytoleaveyoufeelingevenmorebad-t
党的十九大概括和提出了习近平新时代中国特色社会主义思想,将其确立为党必须长期坚持的指导思想并写进党章,实现了党的指导思想的与时俱进。习近平新时代中国特色社会主义思想是
最新回复
(
0
)