题目描述:输入一个字符串
A
,再输入一个字符串
B
,检查
B
在
A
中出现的次数。例如,输入
:
字符串
A
:
China I Love you,Love you!
字符串
B
:
Love
显示:出现
2
次。
思路:
(300
字左右
)
B
字符串中的长度必定小于
A
字符串。定义字符串数组
a[100],b[100].
新创建一个
char ad[100]
字符串数组,用
printf(“Input a:”);
来提示用户输入字符处串。通过
gets()
依次输入
a[100],b[100]
的字符串。通过
<string.h>
文件中的
strlen()
得出
a
,
b
字符串长度分别为
n,m
。定义变量
k,
控制变量
k
,通过循环结构将吧
b[k]
至
b[k+m]
的字符分别赋值至
ad[0]
至
ad[m-1]
,
k
的最大值为
n-m-2
。用
i
作为变量,对
ad[]
进行赋值,且
i<=m-1
。用
strcmp()
函数将
ad[100]
与
b[100]
字符串自左向右进行比较。每次相等时,变量
s+1
。
s
的初始值为
0
。最后输出
s
为
b
字符串在
a
字符串中出现的次数。
代码:
#include<stdio.h>
#include<string.h>
main(){
int m , n , i , j , k , s ;
static char a[100] , b[100] ;
s = 0 ;
clrscr() ;
printf(“Input a:”) ;
gets(a) ;
printf(“Input b:”) ;
gets(b);
m = strlen(b) ;
n = strlen(a) ;
for(k=0;k<=(n-m-2);k++){
static char ad[100] ;
for(i=0,j=k;i<=(m-1);i++,j++)
ad[i]=a[j] ;
if(strcmp(ad,b)==0)
s=s+1 ;
}
printf(“m=%d/nn=%d/nTimes=%d”, m , n);
}
运行结果:
输入:
A:I Love China
,
Love China
!
B:Love
输出:
m=4
n=24
Times=2
输入:
A:My hometown is Quzhou.My city is here,My name is Jiangxinbei! B:MY
输出:
m=2
n=60
Times=3