Initial commit
This commit is contained in:
171
application/source/char.c
Executable file
171
application/source/char.c
Executable file
@@ -0,0 +1,171 @@
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include <array.h>
|
||||
|
||||
#include <dirent.h>
|
||||
|
||||
#include <ctype.h>
|
||||
|
||||
#include <string.h>
|
||||
|
||||
|
||||
class char{
|
||||
|
||||
|
||||
int operator==( char * b ) {
|
||||
|
||||
return this->compare( b );
|
||||
|
||||
}
|
||||
|
||||
void operator+=( char * b ) {
|
||||
|
||||
// not proper
|
||||
strcat( this, b );
|
||||
|
||||
}
|
||||
|
||||
char * operator+( char * b ) {
|
||||
|
||||
return this->concatenate( b );
|
||||
|
||||
}
|
||||
|
||||
int compare( char * b ) {
|
||||
|
||||
return strcmp( this, b ) == 0;
|
||||
|
||||
}
|
||||
|
||||
char * concatenate( char * b ) {
|
||||
|
||||
int lengthA = strlen( this );
|
||||
|
||||
int lengthB = strlen( b );
|
||||
|
||||
char * pointer = this;
|
||||
|
||||
char * copy = ( char * ) malloc( ( lengthA + lengthB + 1 ) * sizeof( char ) );
|
||||
|
||||
int idx = 0;
|
||||
|
||||
while ( * pointer != '\0' ){
|
||||
|
||||
copy[idx++] = *pointer++;
|
||||
|
||||
}
|
||||
|
||||
pointer = &b[0];
|
||||
|
||||
while ( * pointer != '\0' ){
|
||||
|
||||
copy[idx++] = *pointer++;
|
||||
|
||||
}
|
||||
|
||||
copy[ idx++ ] = '\0';
|
||||
|
||||
return ©[0];
|
||||
|
||||
}
|
||||
|
||||
int includes( char * compare ) {
|
||||
|
||||
if ( strstr( this, compare ) != NULL ) {
|
||||
|
||||
return 1;
|
||||
|
||||
} else {
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
char * clone( ) {
|
||||
|
||||
char * newCopy = malloc( sizeof( char ) * strlen( this ) );
|
||||
|
||||
strcpy( newCopy, this );
|
||||
|
||||
return newCopy;
|
||||
|
||||
}
|
||||
|
||||
char * copy( ) {
|
||||
|
||||
char * newCopy = malloc( sizeof( char ) * strlen( this ) );
|
||||
|
||||
strcpy( newCopy, this );
|
||||
|
||||
return newCopy;
|
||||
|
||||
}
|
||||
|
||||
struct array * split( char * needle )
|
||||
{
|
||||
|
||||
char * haystack = this->clone();
|
||||
|
||||
struct array * keys = new array();
|
||||
|
||||
int count = 0;
|
||||
|
||||
char * tmp = haystack;
|
||||
|
||||
char * token = strtok( haystack, needle );
|
||||
|
||||
int i = 0;
|
||||
|
||||
while ( token ) {
|
||||
|
||||
array_add( keys, token );
|
||||
|
||||
//printf("strtok: %s \n", token );
|
||||
|
||||
token = (char *) strtok( NULL, needle );
|
||||
|
||||
}
|
||||
|
||||
return keys;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
char * removeWhitespaceLeft()
|
||||
{
|
||||
char * s = this;
|
||||
|
||||
while(isspace(*s)) s++;
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
char * removeWhitespaceRight()
|
||||
{
|
||||
char * s = this;
|
||||
|
||||
char* back = s + strlen(s);
|
||||
|
||||
while( isspace( *--back ) );
|
||||
|
||||
*( back + 1 ) = '\0';
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
char * removeWhitespace( )
|
||||
{
|
||||
|
||||
return this->removeWhitespaceLeft()->removeWhitespaceRight();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user