首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
编写一个函数,该函数可以统计一个长度为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
32
问题
编写一个函数,该函数可以统计一个长度为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<stdio.h>voiddelch(char*s){inti,j;char*a;a=s;for(i=0,j=0;a[i]!=’\0’;
下面程序段的运行结果是()。char*p="%d,a=%d,b=%d\n";inta=111,b=10,c;c=a%b;p+=3;printf(p,c,a,b);
数据结构分为逻辑结构和存储结构,循环队列属于【 】结构。
以下关于函数的叙述中正确的是 ______。
数据库系统的核心是 ______ 。
有以下程序 int fun(int n) { if(n=1) return 1; else return(n+fun(n-1)); } main(
有以下程序 main() {int i,s=0,t[]={1,2,3,4,5,6,7,8,9 }; for(i=0;i<9;i+=2) s+=*(t+i); printf("%d\
有以下程序 fun(char p[][10]) {int n=0,i; for(i=O;i<7;i++) if(p[i][O]=T)n++; return n; } main
已定义以下函数 int fun(int *p) {return *p;} fun函数返回值是______。
下面程序的功能是建立一个有3个结点的单循环链表,然后求各个结点数值域data中数据的和,请填空。#include<stdio.h>#include<stdlib.h>struc
随机试题
若f(x)为连续的奇函数,则∫—11f(x)dx=【】
患儿,女童,7岁,乳牙龋坏较多,六龄牙完全萌出,窝沟较深,无明显龋坏,要求预防,该患者首选的龋病预防措施是六龄牙的窝沟封闭。操作过程中不正确的是
下列关于唐宋司法制度的理解,正确的是()
据《社会生活环境噪声排放标准》,在社会生活噪声排放源边界布设多个测点时,其中应包括()的位置。
对某公共建筑火灾自动报警系统的控制器进行功能检查。下列检查结果中,符合现行国家消防技术标准的有()。
我国最大的高原沼泽植被集中分布区、高原珍禽黑颈鹤的繁殖栖息地、我国最大的高原泥炭沼泽地是()自然保护区。
有5名日本侵华时期被抓到日本的原中国劳工起诉日本一家公司,要求赔偿损失。2007年日本最高法院在终审判决中声称,根据《中日联合声明》,中国人的个人索赔权已被放弃,因此驳回中国劳工的诉讼请求。查1972年签署的《中日联合声明》是这样写的:“中华人民共和国政府
解放军某部有600人,他们排成四路纵队,每相邻两排之间前后相距1米,队伍每分钟行75米,现在要通过一座长676米的桥,从排头上桥到排尾离桥共需多少分钟?
小李是某政法学院教务处的工作人员,为更好地掌握各个教学班级的整体情况,教务处领导要求她制作成绩分析表。请根据考生文件夹下“素材.xlsx”文件,帮助小李完成学生期末成绩分析表的制作。具体要求如下:为“法一”“法二”“法三”“法四”工作表内容套用“表
Nasreddinhadlosthis______.Nasreddin’sringwasmadeof______.
最新回复
(
0
)