Converting a character to upper case in string

Laurent Tréguier laurent.treguier.sink at gmail.com
Fri Sep 21 12:46:18 UTC 2018


On Friday, 21 September 2018 at 12:15:52 UTC, NX wrote:
> How can I properly convert a character, say, first one to upper 
> case in a unicode correct manner?
> In which code level I should be working on? Grapheme? Or maybe 
> code point is sufficient?
>
> There are few phobos functions like asCapitalized() none of 
> which are what I want.

----------
import std.conv : to;
import std.stdio : writeln;
import std.string : capitalize;
import std.utf : decode;

size_t index = 1;
size_t oldIndex = index;
auto theString = "hëllo, world";
auto firstLetter = theString.decode(index);
auto result = theString[0 .. oldIndex] ~ 
capitalize(firstLetter.to!string) ~ theString[index .. $];
writeln(result);
----------

(This could be a lot prettier, but this seems to basically work)


More information about the Digitalmars-d-learn mailing list