Dani88
30-01-2008, 14:33
Raga in vista dell'esame di fondamenti di informatica che ho tra 2 giorni, sto provando a rifarmi alcune funzioni che sono incluse in librerie che il prof non ci fa usare (per capirci solitamente solo lib di I/O, niente string.h o altro...)
Nello specifico avrei bisogno di aiuto per rifare le funzioni
strcmp e strcpy
Per la prima pensavo di fare una cosa di questo tipo:
#include <iostream>
using namespace std;
void main()
{
char str1[11],str2[11];
cout<<"inserisci stringa 1: ";
cin>>str1;
cout<<"inserisci stringa 2: ";
cin>>str2;
// inizio funzione
int i=0;
bool ctrl=true;
while(ctrl==true){
if(str1[i]<str2[i]){
ctrl=false;
//return -1;
}
else if(str1[i]>str2[i]){
ctrl=false;
//return 1;
}
if (str1[i]==str2[i]){
if(str1[i]=='\0' && str2[i]=='\0'){
ctrl=false;
//return 0;
}
i++;
}
}
}
(tralasciate il fatto che scritta così non posso mettere return qualcosa :D lo so solo che il problema per ora è a monte e se nn capisco quello non posso fare la funzione)
Il problema però è che non capisco perchè lui le stringhe, quando digito qualcosa, non mette il primo carattere in posizione 0 dell'array, il secondo in pos 1, ecc.
Cioè se tipo digito "ciao" mi mette
http://www.pctunerup.com/up/results/_200801/th_20080130152931_error.jpg (http://www.pctunerup.com/up/image.php?src=_200801/20080130152931_error.jpg)
Ora come potete ben capire a questo punto nn posso partire facendo il confornto tra i primi elementi di ciascuna stringa perchè chissà cosa esce fuori.
Stessa cosa per rifare strcpy
Come posso risolvere il problema?? :help: :help:
Nello specifico avrei bisogno di aiuto per rifare le funzioni
strcmp e strcpy
Per la prima pensavo di fare una cosa di questo tipo:
#include <iostream>
using namespace std;
void main()
{
char str1[11],str2[11];
cout<<"inserisci stringa 1: ";
cin>>str1;
cout<<"inserisci stringa 2: ";
cin>>str2;
// inizio funzione
int i=0;
bool ctrl=true;
while(ctrl==true){
if(str1[i]<str2[i]){
ctrl=false;
//return -1;
}
else if(str1[i]>str2[i]){
ctrl=false;
//return 1;
}
if (str1[i]==str2[i]){
if(str1[i]=='\0' && str2[i]=='\0'){
ctrl=false;
//return 0;
}
i++;
}
}
}
(tralasciate il fatto che scritta così non posso mettere return qualcosa :D lo so solo che il problema per ora è a monte e se nn capisco quello non posso fare la funzione)
Il problema però è che non capisco perchè lui le stringhe, quando digito qualcosa, non mette il primo carattere in posizione 0 dell'array, il secondo in pos 1, ecc.
Cioè se tipo digito "ciao" mi mette
http://www.pctunerup.com/up/results/_200801/th_20080130152931_error.jpg (http://www.pctunerup.com/up/image.php?src=_200801/20080130152931_error.jpg)
Ora come potete ben capire a questo punto nn posso partire facendo il confornto tra i primi elementi di ciascuna stringa perchè chissà cosa esce fuori.
Stessa cosa per rifare strcpy
Come posso risolvere il problema?? :help: :help: