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;
}

 

posted on 2010-10-29 17:37  role  阅读(797)  评论(1编辑  收藏  举报