関数FINDSTR(CHAR * STR、CHAR * SUBSTR)、別の文字列で発生した2サブストリングの頻度及び長さの統計的関数を書きます。例えば、関数の戻り値は6である、「と」入力された文字列は、サブストリング「zx67 ASD mkloとしてASD asasdfg ASD」であると仮定します。
読み書き機能は、()二つの文字列in.datファイルから読み込まれ、実装、およびout.datでファイルに出力した後、関数findstrの()を呼び出します。
書式#include <stdio.hに>
書式#include <string.hの>
書式#include <conio.h>
int型FINDSTR(CHAR * strの、CHAR * SUBSTR)
{INT I、J、LEN1、LEN2、CNT = 0、フラグ。
LEN1 = STRLEN(STR)。
LEN2 = STRLEN(SUBSTR)。
用(; I <LEN1; iが0 = I ++)
{(J ++; J <LEN2 J = 0)のための
IF(STR [I + J] == SUBSTR [J])フラグ= 1。
他{フラグ= 0;ブレーク;}
(フラグ== 1)CNT ++場合。
}
CNTを返します。
}
メイン()
{
文字列str [81]、SUBSTR [3]。
int型のn;
clrscr();
printf(「元の文字列を入力してください。」);
(文字列)を取得します。
printf( "入力サブストリング:");
(SUBSTR)を取得します。
プット(STR);
プット(SUBSTR)。
= FINDSTR(STR、SUBSTR)。
printf(「N =%D \ N」、N)。
読み書き() ;
}
読み書き()
{
文字列str [81]、SUBSTR [3]、CH。
整数nは、lenは、I = 0。
FILE * RF、* WF;
RF =のfopen(「R」、「in.dat」)。
WF =のfopen(「out.dat」、「W」)。
{(I <25)、一方
関数fgets(STR、80、RF)。
関数fgets(SUBSTR、10、RF)。
LEN = STRLEN(基板) - 1。
CH = SUBSTR [だけ]。
IF(CH == '\ n' || CH == 0x1a)SUBSTR [LEN] = 0;
= FINDSTR(STR、SUBSTR)。
関数fprintf(WF、「%D \ N」、N)。
I ++;
}
FCLOSE(RF)。
FCLOSE(WF)。
}