http://acm.hdu.edu.cn/showproblem.php?pid=2087
这题主要考察字符串的处理
(1)直接字符数组控制,哈哈……我的一次ac了,好高兴……
(2)
直接调用库函数strstr()。
strstr
语法:
#include <string.h>
char *strstr( const char *str1, const char *str2 );
功能:函数返回一个指针,它指向字符串str2 首次出现于字符串str1中的位置,如果没有找到,返回NULL。
2010-10-29 17:32:02 | Accepted | 2087 | 0MS | 196K | 520 B | G++ | rll |
#include <stdio.h>
#include <string.h>
int main(void)
{
int len, c;
char *p;
char a[1001], b[1001];
while (scanf("%s", a), a[0] != '#')
{
scanf("%s", b);
len = strlen(b);
for (c = 0, p = a; p = strstr(p, b); c++,p += len);
printf("%d\n", c);
}
return 0;
}
代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 10002
int main()
{
char a[N],b[N];
int i,j,count,len1,len2,len,k;
while(scanf("%s",a))
{
if(strcmp(a,"#")==0)break;
scanf("%s",b);
len1=strlen(a);
len2=strlen(b);
i=0;count=0;len=0;
for(k=len2-1;k<len1;k=k+len2)
{
len=0;
for(j=0;j<len2,i<=k&&k<len1;)
{
if(a[i]==b[j]){j++;i++;len++;}
else {i++;k++;j=0;len=0;}
}
if(len==len2){count++;j=0;}
}
printf("%d\n",count);
}
return 0;
}