Не скажу насчет C-либ, но средствами руби они уж точно реализуются. По сути, они ничем не отличаются от обычных методов, за исключением того, что они являются "преобразующими". Это свойство и принято отмечать восклицательным знаком в названии.
p.s. подробнее о bang-методах: http://habrahabr.ru/blogs/ruby/50169/
p.s.2. для общего развития советую просматривать git-репозиторий rubinius, интерпретатора ruby, написанного на ruby. Конкретно
здесь можно наблюдать реализацию класса String.