Merhaba,
Şu kodda yer alan çıktıda, wchar içine sığabilecek boyutta Türkçe karakterler içeren bir dizge dizisi (string array), nedense foreach() içinde düzgün aktarılamıyor:
import std.stdio, std.range;
string[] data = [ "Pazartesi"
, "Salı"
, "Çarşamba"
, "Perşembe"
, "Cuma"
, "Cumartesi"
, "Pazar"
];
auto toWchar(string str) {
wchar[] result;
while(!str.empty) {
result ~= str.front;
str.popFront();
}
return result;
}
void main()
{
foreach(date; data)
{
wchar[] temp;
foreach(d; date)
{
temp ~= d;
}
temp.write(" -> ");
date.toWchar().writeln;
}
}/* ÇIKTISI:
Pazartesi -> Pazartesi
Salı -> Salı
ÃarÅamba -> Çarşamba
PerÅembe -> Perşembe
Cuma -> Cuma
Cumartesi -> Cumartesi
Pazar -> Pazar
*/
Kendimce çözüm buldum ama neticede toWchar() işlevi ile aynı 3 aralık işlevlerini (sırasıyla empty, front, popFront) foreach() de çalıştırmıyor mu? Niye while() döngüsü ile yapılandan farklı sonuçlar alınır ki?
Teşekkürler...