Char* MYSTRCPY (Char*strdest,Const Char*strsrc) {Assert (strdest! = NULL && STRSRC! =NULL); Char*temp =strdest; while((*strdest++ = *strsrc++)! =' /') NULL; returntemp;}intMystrlen (Const Char*str) {Assert (str!=NULL); intLen =0; while(*str++! =' /') {len++; } returnLen;}voidBubblesort (vector<int> &data) { intCount =data.size (); BOOLTag =false; for(inti =0; I < count; i++) {tag=false; for(intj =0; J < count-i-1; J + + ) { if(Data[j] > data[j+1]) {tag=true; inttemp =Data[j]; DATA[J]= data[j+1]; Data[j+1] =temp; } } if( !tag) { Break; } }}voidQuickSort (vector<int> &data,intLeftintRight ) { if(Left <Right ) { intindex =Data[left]; intLow =Left ; intHigh =Right ; while(Low <High ) { while(Low < high && index < Data[high]) high--; Data[low]=Data[high]; while(Low < high && index > Data[low]) low++; Data[high]=Data[low]; } Data[low]=index; QuickSort (data, left, low-1); QuickSort (data, low+1, right); }}voidSelectsort (vector<int> &data) { intCount =data.size (); for(inti =0; I < count; i++ ) { intMin =Data[i]; intindex =i; for(intj = i+1; J < Count; J + + ) { if(Min >Data[j]) {min=Data[j]; Index=J; } } if(I! =index) { inttemp =Data[i]; Data[i]=Data[index]; Data[index]=temp; } }}classstring{ Public: String (Const Char*str =NULL); String (ConstString &Other ); Virtual~string (void); String&operator=(ConstString &Other );Private: Char*m_data;}; String::string (Const Char*str) { if(str = =NULL) {m_data=New Char[1]; m_data[0] =' /'; } Else{m_data=New Char[Strlen (str) +1]; if(M_data! =NULL) {strcpy (m_data, str); }}}string::string (ConstString &Other ) {m_data=New Char[Strlen (Other.m_data) +1]; if(M_data! =NULL) {strcpy (m_data, other.m_data); }}string::~string (void){ if(M_data! =NULL) { Delete[] m_data; }}string& String::operator=(ConstString &Other ) { if( This= = &Other ) { return* This; } Delete[] m_data; M_data=New Char[Strlen (Other.m_data) +1]; if(M_data! =NULL) {strcpy (m_data, other.m_data); } return* This;}
C + + Classic face question