ポインタを交換して、charポインタの配列(char * _string)を並べ替えようとしています。
私はこのメソッドを持っています。私がやりたいのは、_stringから取得した値を使用し、_stringを操作せずに、メソッドに渡す空のヘルパー配列(char * _output)を使用してそれらを並べ替えることです。
誰かが私を助けて、私が間違っていることを教えてもらえますか?
void sortAsc(char* _string, char* _output)
{
int length = strlen(_string);
// output and string now point to the same area in the memory
_output = _string;
for( int i = 0; i < length; i++) {
for( int j = 0; j < length; j++) {
if( *(_output) > (_output[j] ) ) {
// save the pointer
char* tmp = _output;
// now output points to the smaller value
_output = _output+j;
// move up the pointer to the smaller value
_output + j;
// now the pointer of the smaller value points to the higher value
_output = tmp;
// move down to where we were + 1
_output - j + 1;
}
}
}
//_output[length]='\0';
//delete chars;
}
私のメインメソッドでは、次のようなことをします。
char * string = {"bcdae"};
char * output = new char[5];
sortAsc(string, output);
そのコードの後で、出力配列にソートされた値が含まれるようにします。