Thread overview
Sonlanmamış karakter sabiti hatası
Dec 21, 2016
erdem
Dec 21, 2016
erdem
December 21, 2016

Çok basit bir soru olacak ama:

dchar bağlantıYap(in dchar karakter)
{
   if (karakter == 'I')
       return 'ı';
   else if (karakter == ' ')
       return '-';
   else if (karakter == '?')
       return '';
   return toLower(karakter);
}

Bu şekilde adres isimlerinden bazı karakterleri temizleyen bir işlevimiz var. Şimdi soru işareti geldiği zaman basitçe kaldırmak istiyorum ama 'return '';' şeklinde bir yazımı kabul etmiyor anlaşıldığı kadarıyla.

'Error: unterminated character constant'

şeklinde bir hata iletisi alıyorum.

Soru işareti yerine tek boşluk içeren bir karakter kabul ediyor ama..

Tamamen soru işaretini adres isimlerinden nasıl kaldırabiliriz acaba?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 21, 2016

Teşekkürler 'std.string.translate' kullanacak şekilde kodda düzenleme yaptım.

import std.string: translate;

auto bağlantıYap(string metin)
{
   dchar[dchar] değişecek = ['I' : 'ı', ' ' : '-'];
   metin = translate(metin, değişecek, "?");
   return küçükHarf(metin);
}

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 21, 2016

Soru işaretini kaldırmak için .filter!(c => c != '?') kullanılabilir.

Bu işlevle ilgili olarak, dönüş türü dchar olduğuna göre, bir dchar döndürmek zorundayız. Yapabileceğin bir şey, geçersiz bir Unicode karakteri olan dchar.init döndürmek ve bunu denetlemek olabilir. Ama bence .filter çok daha doğru. Ayrıca std.string.translate'i de kullanabilirsin:

http://dlang.org/phobos/std_string.html#.translate

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]