Çözüldü Bu kod neyi açıklıyor?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

RSK06

Hectopat
Katılım
29 Aralık 2020
Mesajlar
2.365
Çözümler
4
Daha fazla  
Cinsiyet
Erkek
string test(string s) { return s.length() > 1 ? s.substr(s.length() - 1) + s.substr(1, s.length() - 2) + s.substr(0, 1) : s; } int main() { cout << test("abcd") << endl; cout << test("a") << endl; cout << test("xy") << endl; return 0; }
Return kısmını anlayamıyorum.
Açıklar mısınız demek istedim başlıkta.
 
Son düzenleyen: Moderatör:
Çözüm
?: operatörü kullanılmış.
ilk kısım ? ikinci kısım : üçüncü kısım şeklinde kullanılır. İlk kısımda mantıksal sorgu olur. İkinci kısımda true döndürürse olacak şey, üçüncü kısımda da false döndürürse olacak şey olur.
Buradan da bakabilirsin.

Yani bunu,
Kod:
if (s.length() > 1){
    return s.substr(s.length() - 1) + s.substr(1, s.length() - 2) + s.substr(0, 1);
}
else {
    return s;
}
şeklinde düşünebiliriz.

substr metodu içinden kesilmiş bir kısım döndürür. İlki başlangıç, ikincisi de uzunluktur. Overload edilmiştir. İkincisinin verilmesi şart değildir. Verilmezse sonuna kadar gider.
lenght metodu da uzunluğunu verir.

Bu açıklamaya rağmen anlamadığın bir yer varsa belirt.
Yaptığı şey şu oluyor: String'in son karakteri ile ilk karakterinin yerini değiştirmek.
Fonksiyonun dönüş değeri olur return. Örnek olarak, sayı çiftse return 1, tekse return 0 diyerek fonksiyondan sayının çift mi tek mi olduğunu anlayabilirsin.
 
Son düzenleyen: Moderatör:
Fonksiyonun dönüş değeri olur return. Örnek olarak. Sayı çiftse return 1 tekse return 0 diyerek fonksiyondan sayının çift mi tek mi olduğunu anlayabilirsin.

Onu demiyorum, return s.length() > 1 ? s.substr(s.length() - 1) + s.substr(1, s.length() - 2) + s.substr(0, 1) : s;
Bu kısımdaki işlemler karışık geliyor. Mesela s. Substr (1, s.lengtj() - 2) ne oluyor ?
 
?: operatörü kullanılmış.
ilk kısım ? ikinci kısım : üçüncü kısım şeklinde kullanılır. İlk kısımda mantıksal sorgu olur. İkinci kısımda true döndürürse olacak şey, üçüncü kısımda da false döndürürse olacak şey olur.
Buradan da bakabilirsin.

Yani bunu,
Kod:
if (s.length() > 1){
    return s.substr(s.length() - 1) + s.substr(1, s.length() - 2) + s.substr(0, 1);
}
else {
    return s;
}
şeklinde düşünebiliriz.

substr metodu içinden kesilmiş bir kısım döndürür. İlki başlangıç, ikincisi de uzunluktur. Overload edilmiştir. İkincisinin verilmesi şart değildir. Verilmezse sonuna kadar gider.
lenght metodu da uzunluğunu verir.

Bu açıklamaya rağmen anlamadığın bir yer varsa belirt.
Yaptığı şey şu oluyor: String'in son karakteri ile ilk karakterinin yerini değiştirmek.
 
Çözüm
Operatörü kullanılmış.
ilk kısım ? ikinci kısım : üçüncü kısım şeklinde kullanılır. İlk kısımda mantıksal sorgu olur. İkinci kısımda true döndürürse olacak şey, üçüncü kısımda da false döndürürse olacak şey olur.
Buradan da bakabilirsin.

Yani bunu,
Kod:
if (s.length() > 1){
 return s.substr(s.length() - 1) + s.substr(1, s.length() - 2) + s.substr(0, 1);
}
else {
 return s;
}
Şeklinde düşünebiliriz.

Substr metodu içinden kesilmiş bir kısım döndürür. İlki başlangıç, ikincisi de uzunluktur. Overload edilmiştir. İkincisinin verilmesi şart değildir. Verilmezse sonuna kadar gider.
Lenght metodu da uzunluğunu verir.

Bu açıklamaya rağmen anlamadığın bir yer varsa belirt.

Çok güzel anladım, teşekkür ederim.
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı