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 :
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;
}
il problema è che avendolo fatto con string e non con char non mi funziona strcpy e strcat ...
sono ormai alla deriva....