|
| Hjaelp til egen strcmp() Fra : Shade |
Dato : 16-04-02 21:45 |
|
Jeg er i gang med at forsøge at lave min egen strcmp.
Men jeg kan ikke få det nedenstående til at virker, min
compiler er visual studio 6.
Idet den selv ved rigtig indtastning udskriver "Falsk".
Rasmus
#include <iostream>
#include <fstream>
using namespace std;
void indlaeser();
//char BrugerOrd benyttes flere steder i kode
//da funktion indlaeser kalder den
//deklareres den her
const int MAX = 4;
char BrugerOrd[MAX];
char FloppyDiskPassword[MAX];
int main()
{
indlaeser();
int i = 0;
while (BrugerOrd[i] == FloppyDiskPassword[i])
{
++i;
}
if (BrugerOrd[i] == FloppyDiskPassword[i])
cout << "Sandt" << endl;
else
cout << "Falsk" << endl;
return 0;
}
//**********************************************
//funktion at indlæse FloppyDiskPassword
void indlaeser()
{
//Indlæser brugers password
cout <<"Indtast password :" << endl;
cin >> BrugerOrd;
//Indlæser password til sammenligning fra disk
ifstream infile("a:\\test.txt");
infile >> FloppyDiskPassword;
}
//**********************************************
| |
Claus Rasmussen (16-04-2002)
| Kommentar Fra : Claus Rasmussen |
Dato : 16-04-02 21:57 |
|
Shade wrote:
> Jeg er i gang med at forsøge at lave min egen strcmp.
Hvorfor bruger du ikke bare den inbyggede ?
> Men jeg kan ikke få det nedenstående til at virker, min
> compiler er visual studio 6.
Du har ingen terminering på din løkke. Hvis strengene er
ens vil du fortsætte med at sammenligne ud over strengenes
længde indtil du møder en tilfældig forskel (eller indtil
du får en segmentation fault). F.eks:
BrugerOrd = "HEJ\0!"#¤#¤%&&%/"#¤&...
FloppyDiskPassword = "HEJ\0!"#¤?/#¤%&#&/#¤...
^
her er de forskellige
Gør i stedet således:
while (BrugerOrd[i] != 0 && FloppyDiskPassword[i] != 0
&& BrugerOrd[i] == FloppyDiskPassword[i] {
++i;
}
if (BrugerOrd[i] == 0 && FloppyDiskPassword[i] == 0)
cout << "Strengene er ens" << endl;
else
cout << "Strengene er forskellige" << endl;
Men på bundlinien er: Det er dumt selv at fuske med at lave
rutiner, der er implementeret _og_ testet allerede.
-Claus
| |
Bertel Lund Hansen (16-04-2002)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 16-04-02 22:43 |
|
Claus Rasmussen skrev:
>Men på bundlinien er: Det er dumt selv at fuske med at lave
>rutiner, der er implementeret _og_ testet allerede.
Jeg ville også til at skrive noget lignende, men det kan være
lærerigt at efterligne færdige rutiner. Det er dog dumt ud over
de tilfælde at ... osv.
--
Bertel
http://lundhansen.dk/bertel/ FIDUSO: http://fiduso.dk/
| |
Shade (17-04-2002)
| Kommentar Fra : Shade |
Dato : 17-04-02 14:41 |
|
> Du har ingen terminering på din løkke. Hvis strengene er
> ens vil du fortsætte med at sammenligne ud over strengenes
> længde indtil du møder en tilfældig forskel (eller indtil
> du får en segmentation fault). F.eks:
>
> BrugerOrd = "HEJ\0!"#¤#¤%&&%/"#¤&...
> FloppyDiskPassword = "HEJ\0!"#¤?/#¤%&#&/#¤...
> ^
> her er de forskellige
>
> Gør i stedet således:
>
> while (BrugerOrd[i] != 0 && FloppyDiskPassword[i] != 0
> && BrugerOrd[i] == FloppyDiskPassword[i] {
> ++i;
> }
>
> if (BrugerOrd[i] == 0 && FloppyDiskPassword[i] == 0)
> cout << "Strengene er ens" << endl;
> else
> cout << "Strengene er forskellige" << endl;
>
Jeg er ikke helt med den if sætning der kommer.
Kan du ikke prøve at forklare mig hvorfor
du ikke blot kan skrive
if (BrugerOrd[i] == FloppyDiskPassword[i])
cout << "Sandt" << endl;
else
cout << "Falsk" << endl;
Påforhånd tak. Kender i nogle gode C++ bøger,
jeg læser i øjeblikket Object-Oriented Programming on C++ 3ed,
af Rober Laforce. Jeg vil gerne lære hvordan man "selv programmere"
inden jeg kaster mig over alt det der er i Visuals compiler. Men vil
meget gerne hører om
gode bøger.
Rasmus
| |
Claus Rasmussen (17-04-2002)
| Kommentar Fra : Claus Rasmussen |
Dato : 17-04-02 14:48 |
|
Shade wrote:
> Kan du ikke prøve at forklare mig hvorfor
> du ikke blot kan skrive
>
> if (BrugerOrd[i] == FloppyDiskPassword[i])
> cout << "Sandt" << endl;
> else
> cout << "Falsk" << endl;
Det gør ingen forskel og er nok en smule pænere. Så brug bare det
i stedet.
> Påforhånd tak. Kender i nogle gode C++ bøger,
Prøv at kigge tilbage i gruppen. Der har været et par tråde her på
det seneste, der handlede netop om det.
-Claus
| |
|
|