Files
harbour-core/harbour/contrib/hbgt/strcount.c
Viktor Szakats 0407f7eccb 2012-07-18 18:15 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/hbgt/tests/test.prg
    * formatting (manual)

  * contrib/hbct/bitnum.c
  * contrib/hbct/charmirr.c
  * contrib/hbct/charonly.c
  * contrib/hbct/charsort.c
  * contrib/hbct/ctpad.c
  * contrib/hbct/ctstr.c
  * contrib/hbct/envparam.c
  * contrib/hbct/expand.c
  * contrib/hbct/files.c
  * contrib/hbct/justify.c
  * contrib/hbct/misc2.c
  * contrib/hbct/numat.c
  * contrib/hbct/pos1.c
  * contrib/hbct/posdiff.c
  * contrib/hbct/relation.c
  * contrib/hbct/replace.c
  * contrib/hbct/strswap.c
  * contrib/hbct/token1.c
  * contrib/hbct/token2.c
    * minor whitespace formatting

  * contrib/hbgt/ascposgt.c
  * contrib/hbgt/atdiff.c
  * contrib/hbgt/bitflags.c
  * contrib/hbgt/chareven.c
  * contrib/hbgt/charmixg.c
  * contrib/hbgt/charodd.c
  * contrib/hbgt/chrcount.c
  * contrib/hbgt/chrfirst.c
  * contrib/hbgt/chrtotal.c
  * contrib/hbgt/strasint.c
  * contrib/hbgt/strcount.c
  * contrib/hbgt/strcspn.c
  * contrib/hbgt/strdiffg.c
  * contrib/hbgt/strexpan.c
  * contrib/hbgt/strleft.c
  * contrib/hbgt/strpbrk.c
  * contrib/hbgt/strright.c
    * reformatted using uncrustify
2012-07-18 16:19:27 +00:00

59 lines
1.1 KiB
C

/*
* $Id$
*/
/*
* GT CLIPPER STANDARD HEADER
*
* File......: strcount.c
* Author....: Andy M Leighton
* BBS.......: The Dark Knight Returns
* Net/Node..: 050/069
* User Name.: Andy Leighton
* Date......: 23/05/93
* Revision..: 1.00
*
* This is an original work by Andy Leighton and is placed in the
* public domain.
*/
#include "hbapi.h"
HB_FUNC( GT_STRCOUNT )
{
const char * s1, * s2;
HB_ISIZ count, p1, p2, l1, l2;
int match;
if( HB_ISCHAR( 1 ) && HB_ISCHAR( 2 ) )
{
s1 = hb_parc( 1 );
s2 = hb_parc( 2 );
l1 = hb_parclen( 1 );
l2 = hb_parclen( 2 );
/* loop through s2 matching passed character (s1) with
each character of s1 */
for( count = 0, p2 = 0; p2 <= ( l2 - l1 ); p2++ )
{
match = 1;
for( p1 = 0; p1 < l1; p1++ )
{
if( s1[ p1 ] != s2[ p2 + p1 ] )
match = 0;
}
if( match )
count++;
}
hb_retns( count ); /* return result */
}
else
{
hb_retns( -1 ); /* parameter mismatch - error -1 */
}
}