[RFC] libstdc++/9817 or "passing C++ strings to C functions"
Pétur Runólfsson
peturr02@ru.is
Mon Feb 24 10:53:00 GMT 2003
Paolo Carlini wrote:
> However, I have a major concern: what about the similar issue
> we have with
> collate::transform? collate::compare and collate::transform
> should be fixed in a
> similar way, not only for general consistency sake, but also
> because they must
> be able to work together.
Isn't it possible to use the same strategy? That is break the
string into chunks separated by \0, then transform each chunk
with strxfrm (again, untested code):
const char* p = str.c_str();
const char* pend = str.c_str() + str.length();
char buf[BIGNUM];
string res;
for (;;)
{
size_t n = strxfrm(buf, p, BIGNUM);
res.insert(res.end(), buf, buf + n);
p += strlen(p);
if (p == pend)
break;
++p;
res.push_back('\0');
}
return res;
Petur
More information about the Libstdc++
mailing list