I would strongly suggest you do not do that. Computer Science is for the most part far removed from such practical matters and get's very mathematical. Most programmers do not know most of Computer Science nor do they need to. No more than bookkeepers know calculus or number theory.
As the famous Edsger Dijkstra said many years ago:
Computer science is no more about computers than astronomy is about telescopes.
It sounds to me like you would benefit from some far more down to Earth a practical experience. How does a compute work? What are instructions? What is a variable? What is stack space? What is heap space? What actually is memory on a computer?
A little time spent learning how to program in assembler would enlighten all of that. As it did for us back in the day when we started out with BASIC but were expected to be aware of such low level things.
As for the String trifecta:
A string is just a bunch of bytes in memory somewhere. You need to know where it is to use it. That is it's memory address. If you have a variable that holds that address you have a "pointer". That is trifecta item 1.
Item 2 is that you need to know where that bunch of bytes in memory ends. The end of the string. A length variable would do to tell you that. With that you know how many bytes up from your pointer are part of your string.
Item 3 is that possibly that bunch of bytes in memory has a lot of free, unused, space, after wherever the length says it ends. That is the capacity. You could add more characters to the string in that free space and adjust the length accordingly.
Note that C has only the first item of your trifecta. C has pointers to strings. But it has no idea of the length. The end of a string is marked by a zero byte.
Actually C has no such data type as string. Only pointers to where characters are supposed to be. You have to make it up as you go along.