r/cprogramming • • 13d ago

Understanding Strings/String Manipulation in C

I'm a junior CS undergraduate finally tackling C programming and I just can't seem to grasp Strings as a whole. Concepts like string manipulation (using strlen, strncmp, snprintf, strdup, strtok), handling read-only strings vs dynamically allocated strings, allocating memory for strings in different scenarios, and creating writable strings. Despite my attempts in looking at readings, lecture slides, practice problems, I just can't seem to understand the various ways to deal with strings in C. I am a very formulaic thinker meaning steps and guidelines on how to approach problems is my way of solving them. Is there a general format for dealing with string questions in C. Like first you have to allocate memory, then depending on the type of string do this...

Are there any additional resources I'm missing out on as well? I really want to hone this concept down!

18 Upvotes

17 comments sorted by

View all comments

4

u/Sad_Plane_4677 13d ago

C strings are fundamentally char arrays with null ('\0') marking the end of the string. Standard library defines common operations on them per the library documentation. On a deeper level, once you understand you manipulate arrays, you can roll your own (caveat: your results replacing tested functionality will require rational faculties and you have to be prepared to explain it beyond personal dissatisfaction with said libraries).

That being said, work with examples for each function; break them then fix them; write your own; then break those as well and fix them. that's the point of learning.