salve ragazzi
ho un problema riguardante il programma di crc da me sviluppato, per prima cosa devo passarlo in java ma quello è un problema secondario,il problema principale è che il programma oltre a rilevarmi il crc deve andare a inserirsi in una stringa contenente il valore iniziale binario e il valore del crc.
posto il codice qui :
il problema è che avendolo fatto con string e non con char non mi funziona strcpy e strcat ...codice:#include <cstdlib>#include <iostream> #include <string.h> using namespace std; const int DIM=20; int main() { string A,B,C,D; int lung,i=0,i1,n,cont,lunga; char e; cont=0; cout<<"inserire la stringa da elaborare[F(x)]\n : "; cin>>A; cout<<endl; cout<<"inserire il polinomio generatore[G(x)] N.B deve essere piu' corta della stringa da elaborare!!': "; cin>>B; cout<<endl; lunga=A.length(); lung=B.length(); while(lunga<lung){ cout<<"la stringa da elaborare e' piu' corta del polinomio generatore.\n"; cout<<"inserire la stringa da elaborare: "; cin>>A; lunga=A.length(); } while(i<lunga){ if((A.at(i)!='0')&&(A.at(i)!='1')){ cout<<"la stringa da elaborare e' errata!!\n"; cout<<"inserire la stringa da elaborare[F(x)]\n N.B. deve essere piu' lunga del polinomio generatore: "; cin>>A; lunga=A.length(); i=0; } else i++; } i=0; while(i<lung){ if((B.at(i)!='0')&&(B.at(i)!='1')){ cout<<"il polinomio e' errato."<<endl; cout<<"inserire il polinomio generatore[G(x)]: "; cin>>B; lung=B.length(); i=0; } else i++; } for(i=0;i<lung-1;i++){ A=A+"0"; } D=D+A.substr(0,lung); lunga=A.length(); while(lunga>=lung){ i1=0; cont=0; for(i=0;i<lung;i++){ e=D.at(i)^B.at(i1); e+=48; C=C+e; i1++; } for(i=0;((i<C.length())&&(C.at(i)=='0'));i++) { cont++; } C.erase(0,cont); A.erase(0,lung); A=C+A; D.clear(); C.clear(); D=A.substr(0,lung); lunga=A.length(); } lung=B.length(); i=0; lunga=A.length(); while(lunga<lung){ A="0"+A; i++; lunga=A.length(); } cout<<"il crc e': "<<A<<endl; system("PAUSE"); return EXIT_SUCCESS; }
sono ormai alla deriva....

Rispondi quotando
