Added TextTrim function
Added TextRightTrim Added TextLeftTrim
This commit is contained in:
parent
366313bfd0
commit
3e7b65ee2e
|
|
@ -1184,6 +1184,9 @@ RLAPI const char *TextToUpper(const char *text); // Get upp
|
||||||
RLAPI const char *TextToLower(const char *text); // Get lower case version of provided string
|
RLAPI const char *TextToLower(const char *text); // Get lower case version of provided string
|
||||||
RLAPI const char *TextToPascal(const char *text); // Get Pascal case notation version of provided string
|
RLAPI const char *TextToPascal(const char *text); // Get Pascal case notation version of provided string
|
||||||
RLAPI int TextToInteger(const char *text); // Get integer value from text (negative values not supported)
|
RLAPI int TextToInteger(const char *text); // Get integer value from text (negative values not supported)
|
||||||
|
RLAPI const char *TextTrim(const char *text, char trimChar); // Removes all chars equal to trimChar from the begining and end of the given text (memory should be freed!)
|
||||||
|
RLAPI const char *TextRightTrim(const char *text, char trimChar); // Removes all chars equal to trimChar from the end of the given text (memory should be freed!)
|
||||||
|
RLAPI const char *TextLeftTrim(const char *text, char trimChar); // Removes all chars equal to trimChar from the begining of the given text (memory should be freed!)
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------
|
||||||
// Basic 3d Shapes Drawing Functions (Module: models)
|
// Basic 3d Shapes Drawing Functions (Module: models)
|
||||||
|
|
|
||||||
72
src/text.c
72
src/text.c
|
|
@ -1089,6 +1089,78 @@ const char *TextSubtext(const char *text, int position, int length)
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// removes a specific char from the begining of a string
|
||||||
|
// REQUIRES: strlen()
|
||||||
|
const char *TextLeftTrim(const char *text, char trimChar)
|
||||||
|
{
|
||||||
|
int textLength = strlen(text);
|
||||||
|
int leftOffset = 0;
|
||||||
|
for(leftOffset; leftOffset < textLength; leftOffset++)
|
||||||
|
{
|
||||||
|
if(*(text + leftOffset) != trimChar)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
const char *subText = TextSubtext(text, leftOffset, textLength-leftOffset);
|
||||||
|
int subTextLength = strlen(subText);
|
||||||
|
char *result = malloc(subTextLength+1);
|
||||||
|
|
||||||
|
if (!result) return NULL; // Memory could not be allocated
|
||||||
|
|
||||||
|
strcpy(result, subText);
|
||||||
|
*(result+subTextLength) = '\0';
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// removes all char from the end of a string
|
||||||
|
// REQUIRES: strlen()
|
||||||
|
const char *TextRightTrim(const char *text, char trimChar)
|
||||||
|
{
|
||||||
|
int textLength = strlen(text);
|
||||||
|
int rightOffset = textLength-1;
|
||||||
|
for(rightOffset; -1 < rightOffset; rightOffset--)
|
||||||
|
{
|
||||||
|
if(*(text + rightOffset) != trimChar)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
const char *subText = TextSubtext(text, 0, rightOffset+1);
|
||||||
|
int subTextLength = strlen(subText);
|
||||||
|
char *result = malloc(subTextLength+1);
|
||||||
|
|
||||||
|
if (!result) return NULL; // Memory could not be allocated
|
||||||
|
|
||||||
|
strcpy(result, subText);
|
||||||
|
*(result+subTextLength) = '\0';
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// removes a specific char from the begining of a string
|
||||||
|
// REQUIRES: strlen()
|
||||||
|
const char *TextTrim(const char *text, char trimChar)
|
||||||
|
{
|
||||||
|
int textLength = strlen(text);
|
||||||
|
int leftOffset = 0;
|
||||||
|
for(leftOffset; leftOffset < textLength; leftOffset++)
|
||||||
|
{
|
||||||
|
if(*(text + leftOffset) != trimChar)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
int rightOffset = textLength-1;
|
||||||
|
for(rightOffset; leftOffset < rightOffset; rightOffset--)
|
||||||
|
{
|
||||||
|
if(*(text + rightOffset) != trimChar)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
const char *subText = TextSubtext(text, leftOffset, rightOffset+1-leftOffset);
|
||||||
|
int subTextLength = strlen(subText);
|
||||||
|
char *result = malloc(subTextLength+1);
|
||||||
|
|
||||||
|
if (!result) return NULL; // Memory could not be allocated
|
||||||
|
|
||||||
|
strcpy(result, subText);
|
||||||
|
*(result+subTextLength) = '\0';
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
// Replace text string
|
// Replace text string
|
||||||
// REQUIRES: strlen(), strstr(), strncpy(), strcpy()
|
// REQUIRES: strlen(), strstr(), strncpy(), strcpy()
|
||||||
// WARNING: Internally allocated memory must be freed by the user (if return != NULL)
|
// WARNING: Internally allocated memory must be freed by the user (if return != NULL)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user