文字列処理アルゴリズム(3)指定された位置で文字列の2つの部分の位置を交換する
関数の実装:文字列の2つの部分の位置を指定された位置で交換します.
たとえば、関数入力(「abcde」,2)出力「cdeab」
テーマの意味は比較的に理解すべきで、コードは以下のように実現します:
テスト結果:
abcde cdeab
転載はオリジナルリンクを明記してください:http://blog.csdn.net/wujunokay/article/details/12067631
たとえば、関数入力(「abcde」,2)出力「cdeab」
テーマの意味は比較的に理解すべきで、コードは以下のように実現します:
int SwapStr(char* input, int pos)
{
char* p = input+pos;
int nLen = strlen(input);
//
if (input==NULL || nLen<pos)
{
return -1;
}
char* temp= new char[pos+1];
if (temp == NULL) return -1;
memcpy(temp, input, pos);
temp[pos]='\0';
memcpy(input, p, nLen-pos);
memcpy(input+nLen-pos, temp, pos);
delete[] temp;
temp = NULL;
return 0;
}
int main()
{
char* str=new char[10];// char* str="abcde"; SwapStr("abcde",2);
strcpy(str, "abcde");
cout << str << endl;
SwapStr(str, 2);
cout << str << endl;
delete[] str;
return 0;
}
テスト結果:
abcde cdeab
転載はオリジナルリンクを明記してください:http://blog.csdn.net/wujunokay/article/details/12067631