请编写一个函数int pattern_index(char substr[],char str[]),该函数执行含通配符“?”的字符串的查找时,该通配符可以与任一个字符匹配成功。当子串substr在str中匹配查找成功时,返回子串substr在str中的位置,否则返回值为0。要求使用 for循环实现。输出结果如下:子串起始位置:5注意:部分源程序已存在文件test20_2.cpp中。请勿修改主函数main和其他函数中的任何内容,仅在函数pattern_index的花括号中填写若干语句。文件test20_2.cpp的内容如下:include<iostream.h>int pattern_index(char substr[],char str[]){}void main ( ){char *substring,*string;int same;substring="???gram";string="this program return index of substring";same=pattern_index(substring, string);if(same)cout<<"子串起始位置: "<<same<<end1;elsecout<<"匹配不成功" <<end1;}

请编写一个函数int pattern_index(char substr[],char str[]),该函数执行含通配符“?”的字符串的查找时,该通配符可以与任一个字符匹配成功。当子串substr在str中匹配查找成功时,返回子串substr在str中的位置,否则返回值为0。要求使用 for循环实现。输出结果如下:

子串起始位置:5

注意:部分源程序已存在文件test20_2.cpp中。

请勿修改主函数main和其他函数中的任何内容,仅在函数pattern_index的花括号中填写若干语句。

文件test20_2.cpp的内容如下:

include<iostream.h>

int pattern_index(char substr[],char str[])

{

}

void main ( )

{

char *substring,*string;

int same;

substring="???gram";

string="this program return index of substring";

same=pattern_index(substring, string);

if(same)

cout<<"子串起始位置: "<<same<<end1;

else

cout<<"匹配不成功" <<end1;

}


相关考题:

●试题四请补充函数fun(),该函数可以统计一个长度为n的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为:asd ascasdfg asd as asd mlosd,子字符串为asd,则应输出4。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:#includestdio.h#includestring.h#includeconio.hint fun(char *str,char *substr){int n;char *p,*r;(1) ;while(*str){p=str;r=substr;while(*r)if( (2) ){r++;p++;}elsebreak;if( (3) )n++;str++;}return n;}main(){char str[81],substr[3];int n;clrscr();printf("输入主字符串:");gets(str);printf("输入子字符串:");gets(substr);puts(str);puts(substr);n=fun(str,substr);printf("n=%d\n",n);}

编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为asd asasdfg asd as zx67 asd mklo,子字符串为as,则应当输出6。注意:部分源程序给出如下。请勿改动主函数main和具他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:include <conio.h>include <stdio.h>include <string.h>int fun(char *str, char *substr){}main ( ){char str[81],substr[3];int n;clrscr ();printf ("输入主字符串 ");gets (str);printf ("输入子字符串");gets (substr);puts (str);puts (substr);n=fun (shr, substr);printf("n=%d\n ",n);}

请编写一个函数int CalcDigital(char *str),该函数可返回字符串str中数字字符(即0~9这10个数字)的个数,如字符串“olympic2008”中数字字符的个数为4。请用if条件判断语句与for循环语句来实现该函数。注意:部分源程序已存在文件test9_2.cpp中。请勿修改主函数main和其他函数中的任何内容,仅在函数find的花括号中填写若干语句。文件test9_2.cpp的内容如下:include<iostream.h>include<string.h>int CalcDigital(char*str);void main(){char *str;str=new char[255];cout<<"输入字符串:";cin>>str;int num=CalcDigital(str);cout<<str<<":"<<num<<endl;}int CalcDigital(char *str){}

编写一个函数findStr(),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。例如,假定输入的字符串为"asd asasdfg asd as zx67 asd mklo",子字符串为"as",函数返回值是6。函数ReadWrite()实现从文件in.dat中读取两个字符串并调用函数findStr(),最后把结果输出到文件out.dat中。注意:部分程序已经给出。请勿改动主函数main()和其他函数中的任何内容,仅在函数findStr()的花括号中填入你编写的若干语句。include <stdio.h>include <string.h>include <conio.h>int findStr(char *str,char *substr){}main(){char str[81],substr[3];int n;clrscr();printf("输入原字符串");gets(str) ;printf("输入子字符串:");gets(substr);puts(str);puts(substr);n=findStr(str, substr);printf("n=%d\n", n);ReadWrite();}ReadWrite(){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<25){fgets(str, 80, rf);fgets(substr, 10, rf);len=strlen(substr)-1;ch=substr[len];if(ch=='\n' || ch==0xla)substr[len]=0;n=findStr(str, substr);fprintf(wf, "%dkn", n);i++;}fclose(rf);fclose(wf);}

编写一个函数findStr(),该函数统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为"asd asasdfg asd as zx67 asd mklo",子字符串为“as”,函数返回值是6。函数ReadWrite()的功能是实现从文件in40.dat中读取两个字符串,并调用函数findstr(),最后把结果输出到文件out40.dat中。注意:部分源程序已给出。请勿改动主函数main()和其他函数中的任何内容,仅在函数findStr()的花括号中填入你所编写的若干语句。include<stdio.h>include<string.h>include<conio.h>int findStr(char *str,char *substr){main ( ){char str[81],substr[3];int n;clrscr();printf("输入原字符串: ");gets(str);printf ("输入子字符串: ");gets(substr);puts(str);puts(substr);n=findStr(str,substr);printf("n=%dkn",n);ReadWrite();}ReadWrite(){char ch, str[81],substr[3];int n,len, i=0;FILE *rf,*wf;rf=fopen("in40.dat","r");wf=fopen("out40.dat","w");while(i<5){fgets(str,80,rf);fgets(substr,10,rf);len=strlen(substr)-1;ch=substr[len];if(ch=='\n'||ch==Oxla)substr[len]=0;n=findStr(str,substr);fprintf(wf,"%dln",n);i++;}fclose(rf);fclose(wf);}

下列给定程序中,函数fun()的功能是:统计字符串substr在字符串srt中出现的次数。例如,若字符串为aaas 1 kaaas,子字符串为as,则应输出2。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <stdio.h>fun (char *str, char *substr){int i, j, k, num=0;/*************found**************/for (i=0, str [i], i++)for (j=i, k=O; substr [k]==str [ j ]; k++, j ++ )if (substr [k+l]==' \0'){num++;break;}return num;}main ( ){ char str[80],substr[80];printf("Input a string: ");gets (str);printf("Input a sbustring: ");gets (substr);printf ("%d\n ", fun (str, substr) );

请编写一个函数char *fun(char *s),其中s代表一个字符串。函数fun()的功能是将字符串s的元素倒置。例如,输入为“teacher”,则应输出“rehcaet”。注意:部分源程序已存在文件PROC10.cpp中。请勿修改主函数和其他函数中的任何内容,仅在函数fun()的花括号中填写若干语句。文件PROC10.cpp的内容如下://PROC10. cppinclude <iostream>include <string>using namespace std;char *fun(char *s);int main ( ){char str[81];cout<<"Please enter a string:\n";cin>>str;cout<<"The result is:"<<fun(str));cout<<end1;return 0;}char*fun(char*s){//* * * * * * * * *}

已知strcpy 的函数原型:char *strcpy(char*strDest, const char *strSrc)其中strDest 是目的字符串,strSrc 是源字符串。不调用C++/C 的字符串库函数,请编写函数strcpy。

编写一个函数findStr(char*str,char*substr),该函数统计一个长度为2的子字符串substr在另一个字符串str中出现的次数,该次数作为函数值返回。例如,假定输入的字符串为”asd asasdfg asd as zx67 asdmklo”,子字符串为”as”,函数返回值是6。 函数ReadWrite实现从文件in.dat中读取两个字符串,并调用函数findStr,最后把结果输出到文件out.dat中。 注意:部分源程序存在test.c文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数findStr的花括号中 填入你编写的若干语句。