题目描述:输入一个字符串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