Fixed most of the problems with the StringUtils
+- Phase6_Prep.c +- StringUtils.c Note: Lev did things wrong using malloc in the videos. Corrections have been made. Wrong: malloc( sizeof( sourceStrLen + 1 ) ) Correct: malloc( sizeof(char) * (sourceStrLen + 1) ) This will correctly fix most of the dynamic memory allocation problems that will arise from programs described in the video.
This commit is contained in:
parent
cb03243373
commit
08677204ca
2 changed files with 7 additions and 5 deletions
|
|
@ -66,10 +66,12 @@ int main()
|
||||||
printf("\nLowercase String: '%s'\n", testStringFour);
|
printf("\nLowercase String: '%s'\n", testStringFour);
|
||||||
// string get to delimiter
|
// string get to delimiter
|
||||||
// stringDelimiter
|
// stringDelimiter
|
||||||
|
printf("\nAbout to get string to delimiter -> '.' from standard in:\n");
|
||||||
getStringToDelimiter(stdin, '.', testStringFive);
|
getStringToDelimiter(stdin, '.', testStringFive);
|
||||||
printf("\nCaptured to delimiter: '%s'\n", testStringFive);
|
printf("\nCaptured to delimiter: '%s'\n", testStringFive);
|
||||||
// string get to end of line
|
// string get to end of line
|
||||||
// stringEOL
|
// stringEOL
|
||||||
|
printf("\nAbout to get string to line end from standard in:\n");
|
||||||
getStringToLineEnd(stdin, testStringFive);
|
getStringToLineEnd(stdin, testStringFive);
|
||||||
printf("\nCaptured to end of line: '%s'\n", testStringFive);
|
printf("\nCaptured to end of line: '%s'\n", testStringFive);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -220,14 +220,14 @@ bool getStringConstrained(FILE *inStream, bool clearLeadingNonPrintable,
|
||||||
char delimiter, char *capString)
|
char delimiter, char *capString)
|
||||||
{
|
{
|
||||||
// initialize variables
|
// initialize variables
|
||||||
int intChar = -1, index = 0;
|
int intChar = EOF, index = 0;
|
||||||
|
|
||||||
// initialize output string
|
// initialize output string
|
||||||
capString[index] = NULL_CHAR;
|
capString[index] = NULL_CHAR;
|
||||||
// capture first value in stream using fgetc
|
// capture first value in stream using fgetc
|
||||||
intChar = fgetc(inStream);
|
intChar = fgetc(inStream);
|
||||||
// loop to clear non-printable or space if indicated
|
// loop to clear non-printable or space if indicated
|
||||||
while((((intChar != -1) &&
|
while((((intChar != EOF) &&
|
||||||
(clearLeadingNonPrintable && (intChar < (int)SPACE)))
|
(clearLeadingNonPrintable && (intChar < (int)SPACE)))
|
||||||
|| (clearLeadingSpace && (intChar == (int)SPACE))))
|
|| (clearLeadingSpace && (intChar == (int)SPACE))))
|
||||||
{
|
{
|
||||||
|
|
@ -236,13 +236,13 @@ bool getStringConstrained(FILE *inStream, bool clearLeadingNonPrintable,
|
||||||
}
|
}
|
||||||
// end loop to clear non-printable or space if indicated
|
// end loop to clear non-printable or space if indicated
|
||||||
// check for end of file found
|
// check for end of file found
|
||||||
if(intChar == -1)
|
if(intChar == EOF)
|
||||||
{
|
{
|
||||||
// return false (failed)
|
// return false (failed)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// loop to get input from file stream
|
// loop to get input from file stream
|
||||||
while(((intChar != -1 && index < MAX_STR_LEN - 1) &&
|
while(((intChar != EOF && index < MAX_STR_LEN - 1) &&
|
||||||
(stopAtNonPrintable && intChar >= (int)SPACE))
|
(stopAtNonPrintable && intChar >= (int)SPACE))
|
||||||
|| ((!stopAtNonPrintable) && (intChar != (char)delimiter)))
|
|| ((!stopAtNonPrintable) && (intChar != (char)delimiter)))
|
||||||
{
|
{
|
||||||
|
|
@ -400,7 +400,7 @@ void strToLowerCase(char *outString, const char *inString)
|
||||||
int index = 0;
|
int index = 0;
|
||||||
|
|
||||||
// copy source string in case of aliasing using malloc and copyString
|
// copy source string in case of aliasing using malloc and copyString
|
||||||
tempStr = (char *)malloc((sizeof(sourceStrLen + 1)));
|
tempStr = (char *)malloc((sizeof(char) * (sourceStrLen + 1)));
|
||||||
copyString(tempStr, inString);
|
copyString(tempStr, inString);
|
||||||
// loop across source string
|
// loop across source string
|
||||||
while(tempStr[index] != NULL_CHAR && index < MAX_STR_LEN)
|
while(tempStr[index] != NULL_CHAR && index < MAX_STR_LEN)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue