首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为:asd asasdfg asd as zx67 asd mklo,子字符串为:as,则应输出6。 注意:部分源程序在文件PROGl.C中。 请勿改
编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为:asd asasdfg asd as zx67 asd mklo,子字符串为:as,则应输出6。 注意:部分源程序在文件PROGl.C中。 请勿改
admin
2013-04-02
67
问题
编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为:asd asasdfg asd as zx67 asd mklo,子字符串为:as,则应输出6。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
int fun(char *str,char *substr)
{
}
NONO()
{
/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
char str[81],substr[3], ch;
int n,len, i = 0;
FILE *rf, *wf ;
rf = fopen("in.dat","r");
wf = fopen("out.dat","w");
while(i < 5) {
fgets(str, 80, rf);
fgets(substr, 10, rf);
len = strlen(substr) - 1 ;
ch = substr[len] ;
if(ch == ’\n’ || ch == 0x1a) substr[len] = 0 ;
n=fun(str,substr);
fprintf(wf, "%d\n", n);
i++ ;
}
fclose(rf);
fclose(wf);
}
main()
{
char str[81],substr[3];
int n;
printf("输入主字符串: ");
gets(str);
printf("输入子字符串: ");
gets(substr);
puts(str);
puts(substr);
n=fun(str,substr);
printf("n=%d\n",n);
NONO();
}
选项
答案
{ int cnt=0; char *p=str, *q; while(*p){ q=strstr(p, substr); if(q==NULL) break; p=q+strlen(substr); cnt++; } return cnt; }
解析
(1)在fun函数中,str接受主函数中的字符数组的首地址,另一个字符形参指针指向子串字符数组substr的首地址。
(2)利用strstr函数找到substr出现的位置,设置两个指针变量p和q分别记录起始地址和substr出现的地址。
(3)每次循环开始,使指针p指向str字符串首地址,使q指向子串substr出现的地址,p的位置不断往后移,直到字符串尾,每次找到substr对应统计加1。
转载请注明原文地址:https://kaotiyun.com/show/zJJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
设已执行预编译命令#include<string.h>,以下程序段的输出结果是()。chars[]="anapple";printf("%d\n",strlen(s));
以下程序运行后的输出结果是【 】。intf(inta[],intn){if(n>=1returnf(a,n-1)+a[n-1);elsereturn0;}main(){intaa[5
设有定义int k=1,m=2;float f=7;,则以下选项中错误的表达式是 ______。
在关系模型中,把数据看成是二维表,每—个二维表称为—个[]。
有以下程序 int fun(int n) { if(n=1) return 1; else return(n+fun(n-1)); } main(
有以下程序 main() {int y=10; while(y-);printf("y=%d\n",y); } 程序执行后的输出结果是______。
以下程序中,函数fun的功能是计算x2(上标)-2x+6,主函数中将调用fun函数计算:y1=(x+8)2(上标)-2(x+8)+6y2=sin2(上标)(x)-2sin(x)+6请填空。
下列定义变量的语句中错误的是______。
数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和______。
随机试题
选择性越高,则收率越高。 ()
为了完成某种特定任务、目标,由各种类型领导干部按照一定比例结合而成的领导干部群落是()
某公司年末流动资产总额8000000元,存货5000000元,流动负债3100000元,则速动比率为()
根据经济合作与发展组织,对知识经济的认知有它自身的特点,哪条不是知识经济的特点?
在正常运行时不太可能出现爆炸性气体混合物的场所,或即使出现也仅是短时存在爆炸性气体混合物的场所是()。
甲企业为增值税一般纳税人,主要从事电冰箱的生产和销售,2017年6月发生如下事项:(1)购进生产钢材一批,取得的增值税专用发票上注明价款280万元,委托某运输企业将该批钢材运回,取得承运部门开具的增值税专用发票上注明运费10万元。(2)进口钢材一批,支
设X~N(80,σ2),若要求P(60<X≤100)≥0.90,则σ的最大取值为()。
GeorgeBernardShaw’s______isacommentaryonIbsen’sdramaticworksandalsoservedastheauthor’sownprogramofdramaticc
WhydidthemanneedtoseeDeanWilliams?
A、ItisthetomatofightinBrazil.B、Onlylocalpeopleenjoyedit.C、Lotsofpeopletookpartinit.D、Manyvisitorswatchedth
最新回复
(
0
)