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

Program dodaje nowy napis do starego

0 głosów
56 wizyt
pytanie zadane 15 stycznia 2018 w C i C++ przez Mick_SQ6IYV Użytkownik (750 p.)

Witam!

Zadaniem programu jest "odgadnąć" hasło wprowadzone przez użytkownika. Użytkownik wprowadza napis składający się z określonej liczby liter, a komputer losuje zadaną ilość znaków i sprawdza, czy udało mu się wylosować to, co wpisał użytkownik. Wszystko fajnie, tylko program do wylosowanego (w poprzedniej próbie) napisu "dokleja" mi nowo utworzoną kombinację liter. Najchętniej kazałbym programowi za każdym razem kasować stary napis po sprawdzeniu jego poprawności.

#include <iostream>
#include <cstdlib>
#include <windows.h>
#include <time.h>

using namespace std;

string generator();

int liczba_podejsc=0, liczba_znakow=3;
string napis, haslo;

int main(int argc, char** argv) 
{
	srand(time(NULL));
	cout << endl << " Podaj mi jakies slowo (skladajace sie z 3 znakow): ";
	cin >> haslo;
	do
	{
		system("cls");
		generator();
		liczba_podejsc++;
		cout << endl << " " << liczba_podejsc << ". Podano: " << haslo << ". Wylosowano: " << napis << endl;
		Sleep(50);	
	}
	while(haslo!=napis);
	cout << " Odgadlem Twoje haslo w " << liczba_podejsc << " probie! :)" << endl;
	system("pause");
	return 0;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
string generator()
{
	int liczba;
	char znaki[26]={'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
	for(int i=1; i<=liczba_znakow; i++)
	{
		liczba=(rand()%26)+1;
		napis+=znaki[liczba];
		i++;
	}
	return napis;
}

 

1
komentarz 15 stycznia 2018 przez draghan VIP (102,850 p.)

Najchętniej kazałbym programowi za każdym razem kasować stary napis po sprawdzeniu jego poprawności.

A więc tak zrób. ;)

1 odpowiedź

+2 głosów
odpowiedź 15 stycznia 2018 przez niezalogowany
wybrane 15 stycznia 2018 przez Mick_SQ6IYV
 
Najlepsza

Po co kasować stary napis jak można modyfikować jego elementy? ;)

#include <iostream>
#include <cstdlib>
#include <string>
#include <windows.h>
#include <time.h>
using namespace std;

void generator(string& napis);

int main(int argc, char** argv)
{
	srand(time(NULL));
	int liczba_podejsc = 0, liczba_znakow = 3;
	string napis, haslo;
	
	cout << endl << " Podaj mi jakies slowo: ";
	cin >> haslo;

	if (haslo.length() != liczba_znakow)
	{
		cerr << "\nBlad krytyczny! Podano slowo o nieodpowiedniej dlugosci!";
		return -1;
	}

	napis.resize(liczba_znakow); 
	/*
	funkcja generator generuje przypadkowe wartosci dla kazdego elementu
	wiec powinien miec taki sam rozmiar jak haslo
	*/

	do
	{
		system("cls");
		generator(napis);
		liczba_podejsc++;
		cout << endl << " " << liczba_podejsc << ". Podano: " << haslo << ". Wylosowano: " << napis << endl;
		Sleep(50);
	} while (haslo != napis);

	cout << " Odgadlem Twoje haslo w " << liczba_podejsc << " probie! :)" << endl;
	system("pause");
}

void generator(string& napis)
{
	const static int ile_liter = 'z' - 'a' + 1;
	for (int i = 0; i < napis.length(); i++)
	{
		napis[i] = 'a' + rand() % ile_liter;
	}
}
komentarz 15 stycznia 2018 przez Mick_SQ6IYV Użytkownik (750 p.)
Super, zadziałało:) Dziękuję bardzo za pomoc:)

Podobne pytania

0 głosów
0 odpowiedzi 83 wizyt
pytanie zadane 21 listopada 2018 w PHP, Symfony, Zend przez Cichy799 Nowicjusz (200 p.)
0 głosów
2 odpowiedzi 123 wizyt
0 głosów
0 odpowiedzi 39 wizyt
pytanie zadane 31 lipca 2018 w HTML i CSS przez Shudernight Nowicjusz (120 p.)
Porady nie od parady
Zadając pytanie postaraj się o szczegółowe opisanie problemu oraz udostępnienie wszystkich istotnych informacji (kody źródłowe, zrzuty ekranu itp.).Opisanie problemu

64,023 zapytań

110,396 odpowiedzi

231,162 komentarzy

47,800 pasjonatów

Przeglądających: 160
Pasjonatów: 0 Gości: 160

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...