#1 m.czech
jasné že ti píše tú chybu. Ty totiž porovnávaš x != 0. Ale čo máš v tom x ???
no nič, kedže si tam ešte nič nevložil. Takže buď zmeň podmienku na do - while, alebo načítaj prvé údaje ešte pred podmienkou
Příspěvky odeslané z IP adresy 178.253.133.–
Robo
Robo
#1 Martin
Dá sa to spraviť viacerými spôsobmi (je nato aj funkcia strstr() definovaná v cstring)
Môj program pracuje tak, že si vytvorím pomocný string dĺžky hľadaného znaku. Následne idem porovnávať reťazce a keď narazím na prvú zhodu, tak do toho pomocného reťazca zkopírujem toľko znakov, ako je dlhý pomocný reťazec. Potom už len porovnávam pomocný reťazec s hľadaným znakom a keď je zhoda, tak pripočítam pomocnú premennú temp. Nakoniec mi stačí overiť, či bola zhoda v každom znaku (porovnám dĺžku hľadaného znaku a tempu) a keď bola, tak pripočítam 1 k celkovému počtu.
#include <iostream>
#include <string>
using namespace std;
void porovnaj_znak(string retazec, string znak){
int count = 0;
int temp = 0;
string stemp = znak;
for(int i = 0; i < retazec.length(); i++){
if(retazec[i] == znak[0]){
for(int j = 0; j < znak.length(); j++){
stemp[j] = retazec[i++];
}
i -= znak.length();
for(int j = 0; j < znak.length(); j++){
if(stemp[j] == znak[j])
temp++;
}
if(temp == znak.length())
count++;
}
temp = 0;
}
cout << "Znak bol zobrazeni " << count << " krat\n";
}
int main()
{
porovnaj_znak("somtusomtusompretosom", "som");
system("PAUSE");
return 0;
}