I confess that I get sloppy with getchar() and putchar(). These are macros, not functions, but the issue is that their return value is an int, not a char variable. The reason why is important if you want to follow safe coding practices.
Continue reading
Category Archives: Lesson
Safe Coding Practices – Terminating a String
String constants and strings created or manipulated by C library functions all set that terminating null character, '\0'. When you build your own strings, however, it’s easy to completely forget that null character. I know. I’ve done it.
Continue reading
Safe Coding Practices – String Handling 2
As with the strcpy() function, covered in last week’s Lesson, you run a risk of buffer overflow with strcat(). The compiler doesn’t check for an overflow; to ensure that you’re practicing safe coding habits, that task is up to you.
Continue reading
Safe Coding Practices – String Handling I
C offers a smattering of string-manipulation functions, but it leaves many of the critical issues up to you. Specifically, you must ensure that a string doesn’t overflow its buffer and that all strings are capped with the null character, '\0'.
Continue reading
Safe Coding Practices – scanf()
When it was pointed out to me that using the scanf() functions in my online teaching material was an “unsafe coding practice,” I thought, “Well, duh!” I’ve never been a fan of scanf(); it’s an ugly function.
Continue reading
Safe Coding Practices
Recently, I was notified of some weak programming practices common in beginning C material. As someone who appreciates solid code, I was surprised to hear about these items. As a teacher, I’m quick to address them.
Continue reading
Sorted List Presentation, Part VI
With almost all the former-constants converted to variables, only one puzzle remains: Padding each string’s output so that the columns line up. (Yes, this is the final part of this series!)
Continue reading
Sorted List Presentation, Part V
The process of converting the sample program from one that relies upon constants to one that exclusively uses variables is nearly complete. Only two steps are left:
Continue reading
Sorted List Presentation, Part IV
Last week’s Lesson accomplished the task of obtaining the number of elements in the fruit[] array. This week, the task is to obtain the next item, the widest string in the array. This item is currently a constant, but it must become a variable to ensure the code’s flexibility.
Continue reading
Sorted List Presentation, Part III
Once you accept that a program’s data set is flexible, you must abandon all constants and use variables. It’s a good move: The variables ensure that no matter what changes with the data, the code can handle it.
Continue reading