Çözüldü C++ kodu çalışmıyor

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

genco2.1

Hectopat
Katılım
15 Mayıs 2020
Mesajlar
103
Daha fazla  
Cinsiyet
Erkek
İyi akşamlar arkadaşlar. Vize için bir c++ kodu yazmam gerekiyor. Bizden bir cümle isteyecek sonra da bir harf isteyecek ve daha sonra cümle içindeki kelimeleri tarayıp bizim yazdığımız harfi içeren kelimeleri ekrana yazdıracak. Fakat söyle bir hata alıp duruyorum ne kadar değişken değiştirsem de chat gbt vs yardımı olmadı.
Hata [Error] request for member 'find' in 'kelime_', which is of non-class type 'const int'

Kod
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <cctype>

using namespace std;

int main() {
char harf;
cout << "bir harf giriniz: ";
cin >> harf;

cin.ignore(); // Önceki girişi temizle

string cumle;
cout << " bir cumle giriniz: ";
getline(cin, cumle);

stringstream ss(cumle);
string kelime;
vector<string> kelimeListesi;

// Cümleyi boşluklara göre parçala ve vektöre ekle
while (ss >> kelime) {
kelimeListesi.push_back(kelime);
}

cout << "Girdiginiz harfi iceren kelimeler: " << endl;
// Her kelimeyi kontrol et ve ekrana yazdır
for (const auto& kelime_ : kelimeListesi) {
if (kelime_.find(harf) != string::npos) {
cout << kelime_ << endl;
}
}


return 0;
}
 
Çözüm
Derleme ayarlarınızı C++11 veya üzeri olarak günceller misiniz?
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
İyi akşamlar arkadaşlar. Vize için bir c++ kodu yazmam gerekiyor. Bizden bir cümle isteyecek sonra da bir harf isteyecek ve daha sonra cümle içindeki kelimeleri tarayıp bizim yazdığımız harfi içeren kelimeleri ekrana yazdıracak. Fakat söyle bir hata alıp duruyorum ne kadar değişken değiştirsem de chat gbt vs yardımı olmadı.
Hata [Error] request for member 'find' in 'kelime_', which is of non-class type 'const int'

Kod
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <cctype>

using namespace std;

int main() {
char harf;
cout << "bir harf giriniz: ";
cin >> harf;

cin.ignore(); // Önceki girişi temizle

string cumle;
cout << " bir cumle giriniz: ";
getline(cin, cumle);

stringstream ss(cumle);
string kelime;
vector<string> kelimeListesi;

// Cümleyi boşluklara göre parçala ve vektöre ekle
while (ss >> kelime) {
kelimeListesi.push_back(kelime);
}

cout << "Girdiginiz harfi iceren kelimeler: " << endl;
// Her kelimeyi kontrol et ve ekrana yazdır
for (const auto& kelime_ : kelimeListesi) {
if (kelime_.find(harf) != string::npos) {
cout << kelime_ << endl;
}
}


return 0;
}
C++:
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <cctype>

using namespace std;

int main() {
    char harf;
    cout << "Bir harf giriniz: ";
    cin >> harf;

    cin.ignore(); // Önceki girişi temizle

    string cumle;
    cout << "Bir cümle giriniz: ";
    getline(cin, cumle);

    stringstream ss(cumle);
    string kelime;
    vector<string> kelimeListesi;

    // Cümleyi boşluklara göre parçala ve vektöre ekle
    while (ss >> kelime) {
        kelimeListesi.push_back(kelime);
    }

    cout << "Girdiğiniz harfi içeren kelimeler: " << endl;
    // Her kelimeyi kontrol et ve ekrana yazdır
    for (const string& kelime_ : kelimeListesi) {
        if (kelime_.find(harf) != string::npos) {
            cout << kelime_ << endl;
        }
    }

    return 0;
}

Hatanızın nedeni, döngüdeki kelime değişkenin const string olarak tanımlanması yerine const int olarak tanımlanması. Sorununuz çözüldü.
 
C++:
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <cctype>

using namespace std;

int main() {
    string harf; // char yerine string olarak tanımlıyoruz
    cout << "Bir harf giriniz: ";
    cin >> harf;

    // Eğer birden fazla karakter girişi yapılırsa sadece ilk karakteri al
    harf = harf.substr(0, 1);

    cin.ignore(); // Önceki girişi temizle

    string cumle;
    cout << "Bir cumle giriniz: ";
    getline(cin, cumle);

    stringstream ss(cumle);
    string kelime;
    vector<string> kelimeListesi;

    // Cümleyi boşluklara göre parçala ve vektöre ekle
    while (ss >> kelime) {
        kelimeListesi.push_back(kelime);
    }

    cout << "Girdiginiz harfi iceren kelimeler: " << endl;
    // Her kelimeyi kontrol et ve ekrana yazdır
    for (const auto& kelime_ : kelimeListesi) {
        // Kelime ve harfi karşılaştırırken string olarak yapmalıyız
        if (kelime_.find(harf) != string::npos) {
            cout << kelime_ << endl;
        }
    }

    return 0;
}
 
C++:
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <cctype>

using namespace std;

int main() {
 char harf;
 cout << "Bir harf giriniz: ";
 cin >> harf;

 cin.ignore(); // Önceki girişi temizle

 string cumle;
 cout << "Bir cümle giriniz: ";
 getline(cin, cumle);

 stringstream ss(cumle);
 string kelime;
 vector<string> kelimeListesi;

 // Cümleyi boşluklara göre parçala ve vektöre ekle
 while (ss >> kelime) {
 kelimeListesi.push_back(kelime);
 }

 cout << "Girdiğiniz harfi içeren kelimeler: " << endl;
 // Her kelimeyi kontrol et ve ekrana yazdır
 for (const string& kelime_ : kelimeListesi) {
 if (kelime_.find(harf) != string::npos) {
 cout << kelime_ << endl;
 }
 }

 return 0;
}

Hatanızın nedeni, döngüdeki kelime değişkenin const string olarak tanımlanması yerine const int olarak tanımlanması. Sorununuz çözüldü.

Hocam hala devam ediyor:(
 
Son düzenleyen: Moderatör:
Hocam hala devam ediyor:(
Ben online compiler ile run ettiğimde bir sorun yok emin misiniz?
1711910201607.png
 
Derleme ayarlarınızı C++11 veya üzeri olarak günceller misiniz?
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
 
Çözüm
Derleme ayarlarınızı C++11 veya üzeri olarak günceller misiniz?

Çok teşekkürler hocam bende sorun varmış. Bir de acaba C++ çalışmak için nereyi tavsiye edersiniz?
 
Son düzenleyen: Moderatör:

Geri
Yukarı