Just out of curiosity I was wondering how library developers created their own string classes. I am sort of a novice with programming but I tried creating my own string class to prove that I could do it. What I wasn't able to solve was how to create an array that contained the character sequence. It should obviously be able to change its length. When I passed a reference to the array for the character sequence, I found out the way C++ passes arrays around (via a pointer) makes finding the end of the array impossible!
So my question is how do developers make these string classes? Do they use C++ or some other language, possibly assembly and plug it into C++ by using includes?
A related question I have is how do developers interface with different hardware right out of the box? I mean how do they make their programs use a NIC and send stuff over a network without using a previously written networking library? Do they use some operating system functions to do this? I've taken a few Cisco networking classes so I understand the networking stack...