• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zamiana słowa w stringu na pojedyncze znaki w tablicy char C++

Object Storage Arubacloud
0 głosów
338 wizyt
pytanie zadane 11 maja 2023 w C i C++ przez Mateusz Kubiak Nowicjusz (120 p.)
Witam, pracuje nad programem koła fortuny w c++ do szkoły i mam problem z wykonaniem odgadywania liter

a dokładnie mam pobrany z pliku .txt wyraz np. drzwi i jest on w stringu i musze zamienić go na pojedyncze znaki w tablicy char + wiedzieć ile liter ma ten wyraz.  Wszystkie informacje które podałem wyżej powinny być wprowadzane nie z poziomu konsoli czy kodu tylko na podstawie tego słowa w pliku. Z góry dziękuje za pomoc dodam jeszcze ze program tworze w visual studio. Pozdrawiam

1 odpowiedź

0 głosów
odpowiedź 11 maja 2023 przez nanautzin Obywatel (1,510 p.)
for ( int i{}; i < text.size(); i++ ) {
        char ch = text[ i ];
    }

Np: tak

std::string posiada metode size, która zwaraca wiekość stringa
 

komentarz 11 maja 2023 przez Mateusz Kubiak Nowicjusz (120 p.)
Nie rozumiem co robi ten program mogłbys mi to wytłumaczyc
komentarz 11 maja 2023 przez Oscar Nałogowiec (29,290 p.)
Nic konkretnego, do zmiennej znakowej ch zapisuje po kolei znaki ze stringa.
komentarz 11 maja 2023 przez nanautzin Obywatel (1,510 p.)

@Mateusz Kubiak, 
Pokaż może co juz napisałeś to Ci cos podpowiemy, jak dalej ruszyć.

komentarz 11 maja 2023 przez Mateusz Kubiak Nowicjusz (120 p.)
#include <iostream>
#include <cstdlib>
#include <time.h>
#include <fstream>
#include <string>

using namespace std;
char spolgloski[19] = { 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'r', 's', 't', 'w', 'x', 'y', 'z' };
char samogloski[5] = { 'a', 'e', 'i', 'o', 'u' };
string nicki, s, zgadniecie;
int wartosci[9] = { 100, 200, 500, 1000, 1500, 2000, 2500, 0 };
int wybor, x;


int main()
{
    fstream plik;
    plik.open("hasla.txt");
    getline(plik, s);
    srand(time(NULL));
    cout << "Gra w kolo fortuny!" << endl;
    for (;;)
    {
        cout << "1.Krecenie kolem" << endl;
        cout << "2.Zgadnij haslo" << endl;
        cout << "wybierz opcje: ";
        cin >> wybor;
        switch (wybor)
        {
        case 1:
        {
            x = rand() % 8;
            cout << "Kolo wylosowalo: " << wartosci[x];
            cout << "zgadnij litere";
            break;
        }
        case 2:
        {
            cout << "podaj haslo: ";
            cin >> zgadniecie;
            if (zgadniecie == s)
            {
                cout << "BRAWO WYGRYWASZ";
                exit(0);
            }
            else
            {
                cout << "ZLE!!";
            }
            break;
        }
        }
    }
}

Na razie mam cos takiego co do pliku hasla.txt to jest to plik z pojedynczym slowem i potrzebuje zeby po pokazaniu tego jaką wartosc kolo fortuny wylosowalo byla mozliwosc zgadniecia litery + pokazac ile znakow ma haslo i zastopic to kropkami jako niewiadome

 

komentarz 12 maja 2023 przez nanautzin Obywatel (1,510 p.)

W przypadku case 1 musisz poprosic użytkownika kolejny raz o wartość w postaci litery

Jeżeli chccesz pokazać haslo zasłonięte kropkami możesz to zrobić uzywając zmiennej std::string o wielkości s wypełnionej kropkami, np. tak:

std::string my_string(s.size(), '.');

A poźniej możesz każdą kropkę zaminiać na odpowiedni znak, jak użytkownik zganie

Podobne pytania

0 głosów
1 odpowiedź 510 wizyt
0 głosów
1 odpowiedź 428 wizyt
pytanie zadane 26 stycznia 2020 w C i C++ przez Oskardes Użytkownik (600 p.)
0 głosów
2 odpowiedzi 575 wizyt
pytanie zadane 10 grudnia 2017 w C i C++ przez Tomek Wilnowski Użytkownik (610 p.)

92,567 zapytań

141,420 odpowiedzi

319,616 komentarzy

61,953 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...