Şimdi Ara

C++ Elimdeki txt dosyasını ifstream ile çekiyorum ancak nasıl lowercase yapabilirim?

Bu Konudaki Kullanıcılar:
3 Misafir - 3 Masaüstü
5 sn
8
Cevap
0
Favori
143
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Yazdığım kodda ifstream kullanarak aldığım kodu yarattığım array'e dolduruyorum.Fakat doldurduğum txt dosyasının içindekilerin hepsini küçük harf yapmam lazım
    text=toLower(text) şeklinde bi kullanım varmış galiba ama nereye implement edeceğimi çözemedim





    int array_size = 500000; // define the size of character array
    char * txt = new char[array_size];



    int position = 0;
    cout << "Write the path of the file" << endl;
    string path;
    cin >> path;
    ifstream file(path.c_str());
    if (file.is_open()){
    cout << "File '" << path << "' opened.
    ";
    while (!file.eof() && position < array_size)
    {

    file.get (txt[position]); //reading one character from file to array

    position++;
    }
    txt[position - 1] = '\0'; //placing character array terminating character


    }
    else //file could not be opened
    {
    cout << "File could not be opened." << endl;
    return 1;
    }



    < Bu mesaj bu kişi tarafından değiştirildi Starbucksunstari -- 26 Nisan 2017; 22:58:1 >



  • file.get (txt[position]); //reading one character from file to array
    txt[position]=tolower(txt[position]);///////////
    position++;
  • brk0001 B kullanıcısına yanıt
    Hocam her defasında fişek gibi yetişiyosun teşekkürler fakat olmadı textin içinde 30 tane dots kelimesi geçiyor.Küçük yazınca buluyor fakat DOTS yazdığım zaman output vermiyor.Ifstream ile içini doldurduğum arrayi mainde , search(pattern, txt); ile başka bir fonksiyona çağırıyorum. oraya kullanıcının girdiğini Pattern'i txt ile match ediyorum ve aynı kelimeyi bulduğu zaman outputta X Kelimesi Line 30 da bulundu gibi output verdiriyorum.

    Tahmini sorun şu : mainde
    cout << "Write the word you're searching for
    ";

    string pat;
    cin >> pat;
    kullanıcıdan kelimeyi girmesini istiyorum bunudamı toLower yapmalı ?



    < Bu mesaj bu kişi tarafından değiştirildi Starbucksunstari -- 26 Nisan 2017; 23:43:11 >
  • büyük harfle yazıldığında bulması için toupper fonksiyonu kullanılması lazım(txt arrayi için). tolower array içindeki tüm harfleri küçük yapıyor.
  • quote:

    Orijinalden alıntı: brk0001

    büyük harfle yazıldığında bulması için toupper fonksiyonu kullanılması lazım(txt arrayi için). tolower array içindeki tüm harfleri küçük yapıyor.

    cout << "Write the word you're searching for
    ";

    string pat;
    cin >> pat;

    main'de kullanıcıdan kelimeyi girmesini istiyorum ve girdiği kelimeyi txt' dosyasında ariyor bunudamı toLower yapmalı ? ki kullanıcı büyük harf girsede ikiside tolower olup match edebilsin

    cout << "Write the word you're searching for
    ";

    string pat;
    pat = toLower(pat);
    cin >> pat;

    gibi ama tam nasıl yapılacağını bilemedim



    < Bu mesaj bu kişi tarafından değiştirildi Starbucksunstari -- 26 Nisan 2017; 23:48:52 >
  • evet burada pat string tolower yapılıp aratılırsa bulur.(txt de tolower yapılımış durumdayken)
    string değişken nasıl tolower yapılır bakmak lazım.şu anda tam bilmiyorum(char arrayden farklı sanırım)

    edit:
    tolower yapmadan aratırken patyazan yere tolower(pat.c_str()) yazarak aratabilirsin. gecici olarak pat stringini küçük harfe çevirerek aramaya vermiş oluyor.

    .c_str() char arraye çeviriyor. tolowerküçük harfe çeviriyor ancak bir değişkende depolamıyor .atama yapmadığımız için.



    < Bu mesaj bu kişi tarafından değiştirildi brk0001 -- 26 Nisan 2017; 23:54:32 >
  • quote:

    Orijinalden alıntı: brk0001

    evet burada pat string tolower yapılıp aratılırsa bulur.(txt de tolower yapılımış durumdayken)
    string değişken nasıl tolower yapılır bakmak lazım.şu anda tam bilmiyorum(char arrayden farklı sanırım)

    edit:
    tolower yapmadan aratırken patyazan yere tolower(pat.c_str()) yazarak aratabilirsin. gecici olarak pat stringini küçük harfe çevirerek aramaya vermiş oluyor.

    .c_str() char arraye çeviriyor. tolowerküçük harfe çeviriyor ancak bir değişkende depolamıyor .atama yapmadığımız için.

    Şöyle birşey yaptım gayet sağlıklı çalışıyor.DOTS DoTs dOtS hepsini dots olarak çeviriyor.

    cout << "Write the word you're searching for\n";

    string pat;


    cin >> pat;
    transform(pat.begin(), pat.end(), pat.begin(), ::tolower);
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.