/*
FILE : STRING.H
File contains declaration and definition of functions
handling string manipulation
Tools Used :
Compiler - TCC.EXE ( Turbo )
Compatibility:
Compatible to all ANSI standard C++ compiler
Programmed by : Prince M. Premnath
Mail : princeatapi@yahoo.co.in
Date : 12/06/2007
*/
#ifndef _STRING_H
#define _STRING_H
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned size_t;
#endif
#ifndef NULL
#define NULL 0
#endif
int strlen ( const char * __str );
char* strcpy ( char* __dest , const char* __src );
int strcmp ( const char* __str1 , const char* __str2 );
char* strupr ( char* __str );
char* strlwr ( char* __str );
char* strset ( char* __str , int ch );
char* strcat ( char* __dest , const char* __src );
char* strchr ( const char* __str , int __ch );
char* strdup ( const char* __str);
char* strrev ( char* __str);
int strncmp ( const char* __str1 , const char* __str2 , int maxlen);
int stricmp ( char* __str1 , char* __str2);
int indexof ( const char* __str, char __ch);
char* replace ( char* __str , char __ch1 , char __toch2);
int whereAt ( char* __str , char __ch);
char charAt ( char* __str , int __where);
void setCharAt( char* __str, int __where , char __ch);
void setCharAt( char* str , int where , char ch)
{
int i = 0 , l = 0;
while(*(str + i)){ l++;i++;}
if( where < l )
*(str + where ) = ch;
return -1;
}
int whereAt( char* str , char ch)
{
int i = 0;
while( *( str + i++ ) )
{
if( *(str + i ) == ch )
return i;
}
return -1;
}
char charAt( char* str , int where)
{
int i = 0 , l = 0;
while(*(str + i)){ l++;i++;}
if( where < l )
return *(str + where);
return NULL;
}
char* replace( char* str , char ch1 , char toch2)
{
char* ptr = str;
int i = 0;
while( *(str + i ) )
{
if( *( str + i ) == ch1 )
*( str + i ) = toch2;
i++;
}
return ptr;
}
int indexof( const char* str , char ch)
{
int i = 0 , index = 0;
while( *( str + i ) )
{
if(*( str + i) == ch)
return index;
index++ ; i++;
}
}
int stricmp( char* str1 , char* str2)
{
return strcmp( strlwr(str1) , strlwr(str2) );
}
int strncmp( const char* str1 , const char* str2 , int maxlen)
{
int i = 0;
maxlen += 1;
while( *( str1 + i ) && --maxlen )
{
if( *( str1 + i ) != *( str2 + i ) )
return *( str1 + i ) - *( str2 + i);
++i;
}
if( *( str2 + i ) && maxlen )
return 0 - *( str2 + i );
else
return 0;
}
char* strrev( char* str )
{
char* temp;
int len = 0 , i = 0;
while( *( str + i++ ) ) len++;
i = 0;
while( *( temp + i++) = *( str + --len) );
return temp;
}
char* strdup( const char* str)
{
int len = 0 , i = 0;
char* buffer;
while( *( str + i++ ) ) len++;
buffer = new char[len];
if(!buffer )
return NULL;
i = 0;
while( *( buffer + i ) = *( str + i ) ) ++i;
return buffer;
}
char* strchr( const char* str , int ch)
{
int i = 0;
while( *(str + i++ ) )
{
if( *( str + i ) == ch )
return (char*) ( str + i );
}
return NULL;
}
char* strcat( char* dest , const char* src)
{
int i = 0 , j = 0;
while( *(dest + ++i) );
while( *(dest + i++ ) = *(src + j++) );
return dest;
}
char* strset( char* str , int ch)
{
int i = 0;
while( *(str + i) )
{
*(str + i ) = ch;
++i;
}
return str;
}
char* strupr( char* str )
{
int i = 0;
while( *(str + i) )
{
if( *(str + i ) >= 97 && *( str + i ) <= 122)
*(str + i ) = *(str + i ) - 32;
++i;
}
return str;
}
char* strlwr( char* str)
{
int i = 0;
while( *(str + i) )
{
if( *(str + i ) >= 65 && *( str + i ) <= 90)
*(str + i ) = *(str + i ) + 32;
++i;
}
return str;
}
char* strcpy( char* dest , const char* source )
{
while(*dest++ = *source++);
return dest;
}
int strlen( const char* str)
{
int len = 0;
while(*str++)
len++;
return len;
}
int strcmp( const char* str1 , const char* str2)
{
int i = 0;
while( *(str1 + i ) )
{
if( *( str1 + i ) != *( str2 + i ))
return *(str1 + i ) - *( str2 + i);
++i;
}
if( *(str2 + i ) )
return 0 - *(str2 + i);
else
return 0;
}
#endif
FILE : STRING.H
File contains declaration and definition of functions
handling string manipulation
Tools Used :
Compiler - TCC.EXE ( Turbo )
Compatibility:
Compatible to all ANSI standard C++ compiler
Programmed by : Prince M. Premnath
Mail : princeatapi@yahoo.co.in
Date : 12/06/2007
*/
#ifndef _STRING_H
#define _STRING_H
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned size_t;
#endif
#ifndef NULL
#define NULL 0
#endif
int strlen ( const char * __str );
char* strcpy ( char* __dest , const char* __src );
int strcmp ( const char* __str1 , const char* __str2 );
char* strupr ( char* __str );
char* strlwr ( char* __str );
char* strset ( char* __str , int ch );
char* strcat ( char* __dest , const char* __src );
char* strchr ( const char* __str , int __ch );
char* strdup ( const char* __str);
char* strrev ( char* __str);
int strncmp ( const char* __str1 , const char* __str2 , int maxlen);
int stricmp ( char* __str1 , char* __str2);
int indexof ( const char* __str, char __ch);
char* replace ( char* __str , char __ch1 , char __toch2);
int whereAt ( char* __str , char __ch);
char charAt ( char* __str , int __where);
void setCharAt( char* __str, int __where , char __ch);
void setCharAt( char* str , int where , char ch)
{
int i = 0 , l = 0;
while(*(str + i)){ l++;i++;}
if( where < l )
*(str + where ) = ch;
return -1;
}
int whereAt( char* str , char ch)
{
int i = 0;
while( *( str + i++ ) )
{
if( *(str + i ) == ch )
return i;
}
return -1;
}
char charAt( char* str , int where)
{
int i = 0 , l = 0;
while(*(str + i)){ l++;i++;}
if( where < l )
return *(str + where);
return NULL;
}
char* replace( char* str , char ch1 , char toch2)
{
char* ptr = str;
int i = 0;
while( *(str + i ) )
{
if( *( str + i ) == ch1 )
*( str + i ) = toch2;
i++;
}
return ptr;
}
int indexof( const char* str , char ch)
{
int i = 0 , index = 0;
while( *( str + i ) )
{
if(*( str + i) == ch)
return index;
index++ ; i++;
}
}
int stricmp( char* str1 , char* str2)
{
return strcmp( strlwr(str1) , strlwr(str2) );
}
int strncmp( const char* str1 , const char* str2 , int maxlen)
{
int i = 0;
maxlen += 1;
while( *( str1 + i ) && --maxlen )
{
if( *( str1 + i ) != *( str2 + i ) )
return *( str1 + i ) - *( str2 + i);
++i;
}
if( *( str2 + i ) && maxlen )
return 0 - *( str2 + i );
else
return 0;
}
char* strrev( char* str )
{
char* temp;
int len = 0 , i = 0;
while( *( str + i++ ) ) len++;
i = 0;
while( *( temp + i++) = *( str + --len) );
return temp;
}
char* strdup( const char* str)
{
int len = 0 , i = 0;
char* buffer;
while( *( str + i++ ) ) len++;
buffer = new char[len];
if(!buffer )
return NULL;
i = 0;
while( *( buffer + i ) = *( str + i ) ) ++i;
return buffer;
}
char* strchr( const char* str , int ch)
{
int i = 0;
while( *(str + i++ ) )
{
if( *( str + i ) == ch )
return (char*) ( str + i );
}
return NULL;
}
char* strcat( char* dest , const char* src)
{
int i = 0 , j = 0;
while( *(dest + ++i) );
while( *(dest + i++ ) = *(src + j++) );
return dest;
}
char* strset( char* str , int ch)
{
int i = 0;
while( *(str + i) )
{
*(str + i ) = ch;
++i;
}
return str;
}
char* strupr( char* str )
{
int i = 0;
while( *(str + i) )
{
if( *(str + i ) >= 97 && *( str + i ) <= 122)
*(str + i ) = *(str + i ) - 32;
++i;
}
return str;
}
char* strlwr( char* str)
{
int i = 0;
while( *(str + i) )
{
if( *(str + i ) >= 65 && *( str + i ) <= 90)
*(str + i ) = *(str + i ) + 32;
++i;
}
return str;
}
char* strcpy( char* dest , const char* source )
{
while(*dest++ = *source++);
return dest;
}
int strlen( const char* str)
{
int len = 0;
while(*str++)
len++;
return len;
}
int strcmp( const char* str1 , const char* str2)
{
int i = 0;
while( *(str1 + i ) )
{
if( *( str1 + i ) != *( str2 + i ))
return *(str1 + i ) - *( str2 + i);
++i;
}
if( *(str2 + i ) )
return 0 - *(str2 + i);
else
return 0;
}
#endif
0 comments:
Post a Comment