http://coreland.ath.cx/code/c_string
