# Bu örnek sadece kelimelerin ilk harfini büyük harf yapmak üzerine, yani dosyaya kaydetmeyi eklemeye gerek yok; o zaman tabi uzun olur. # map kullanarak Regex 'siz de çözdüm. print join(' ', (map ucfirst, split(' ',$ARGV[0]))); # map 'e fonksiyon olarak ucfirst ı verdiğinde dizi argümanının elemanlarını UpperCase First olarak map'ler. Orada "map ucfirst, argüman" gösterimi yerine daha klasik olan " map {ucfirst} argüman" gösterimini de kullanabilirsin yani: # print join(' ', (map {ucfirst} split(' ',$ARGV[0]))); # Büyük harfi map 'le yapınca Türkçe karakter sorunu da ortadan kalktı :) |
@seyfi84 Alışkanlık olmuş, senkron pek kullanmıyorum nedense, o halini de yapayım. Edit: Noktalı virgül geldiği için tamamiyle tek satır olmuyor, formatlanınca iki satıra geçiyor. Async yapınca tek satır alıyor. Bu yüzden hybrid. require('fs').writeFile('./test.txt', 'ali bugün okula gitti'.split(' ').map(x => x.charAt(0).toUpperCase() + x.slice(1,x.length)).reverse().join(' '), (err) => console.log(err ? err : require('fs').readFileSync('./test.txt').toString())); |
#include <conio.h> |
Cümledeki kelimeleri sadece tersten yazdırma değil, her sözcüğün ilk harfini büyük harf yapıp oluşan cümleyi bir txt dosyasına kaydetmeyi tek bir satırda yapabiliyorken, böyle uzun kodlar biraz kullanışsız değil mi? Bir satır derken sadece 105 karakter: print $t=join(" ",reverse(map ucfirst,split(" ",$ARGV[0])));open D,">:encoding(UTF-8)","y.txt";print D $t; Deneme: < Resime gitmek için tıklayın > |
Ona kullanışsız demeyelim de şöyle diyelim: Sen belli ki Perl dilini kullanmışsın ki bu bir interpreted dil, ki ben bu tarz dilleri sevmiyorum. Ayrıca uzun uzun kod yazmak beni rahatsız etmiyor ki zaten kodlamayı zevkine yapıyorum. Ama yine de görüşüne saygı duyarım. Ayrıca başlıkta "C dilinde" denmiş. |
Fakat senin kod da C değil ki? Ve C++ ile yazıldığı halde gereksiz uzun hem de hatalı. cin fonksiyonu ile arada boşluklar olan kelimeler girilmez. Kodun kullanışsız olması benim görüşümden cok bir gerçek. |
En iyi hal İki misali de birden vermek. Hem uzun olanı hem kısa olanı. 😄 Uzun yazmayıdı severim. Uzun bir şeyi kısaltmayıda Fakat şunu bilirim c++ var olan for döngüsüne basit bir şeyi yaptıramadım. olay ne for'un düzgün çalışmaması. (farklı bir proje fakat herkesin işine yarar) bu yapınca haber veririm. O yüzden ikinizi de başlatan adına teşekkür ederim. |
C'yi sadece çok küçük bir kısmında kullanmıştım. <conio.h> headeri ve getch() fonksiyonu C'nin değil mi? |
C++ koduna bir C başlığı ve fonksiyonu ekleyince o C programı olmaz. Konunun en başındaki 2 koda bakın; onlar C kodu. |
Her neyse çok da önemli değil, önemli olan kod yazabilmek ve kullandığın dile hakim olmak değil midir? |
C++ ile yazıyorsam input cümlesini STL'deki vector<string> cumle(10) içine kaydedip kelimeleri tersten yazdırmak için de vector Container'ının metodlarını kullanarak belki 5 satırda bu işlemi yaparım. Senin kod 40 satır. Ve çalışmıyor zaten. Bunun adı dile hakimiyet ise ben de Trump Obama'yım. |
Ben dile hakimim demedim ki. Benim işim programcılık bile değil. Sadece kendi çapımda öğrenmeye çalışıyorum. Dolayısıyla yazdığım kodların çalışmaması da gayet mümkün. Kaldı ki ben kimseye artistlik de yapmadım veya programlama uzmanıyım falan da demedim. |
Perl değil, C++ kodu. Comment'ler haric 17 satır ve Türkçe karaktere kadar doğru çalışıyor. Hah böyle birşey göndersen, programlama uzmanıyım dedim, demedim vs. demeye gerek kalmayacaktı. < Resime gitmek için tıklayın > |
#include <stdio.h> #include <string.h> #include <conio.h> void main() { const char*bosluk =" "; char birsatir[100]; char* birkelime = NULL; char kopya[5][250]; int i=0; printf("bir cumle giriniz : \n"); gets(birsatir); birkelime = strtok(birsatir, bosluk); while (birkelime != NULL) { strcpy(kopya, birkelime); i++; birkelime = strtok(NULL, bosluk); } for (int j = i; j >= 0; j--) printf("%s ",kopya[j]); getchar(); } eksiksiz |
< Bu ileti mini sürüm kullanılarak atıldı >
Bu mesajda bahsedilenler: @JSDeveloper