配列の要素を逆順に並べ替える関数を作る。 //********************************************************* // 大きさ size の要素 num 個からなる配列 array の要素を // 逆順に並べ替える。 //********************************************************* void memreverse ( void *array, size_t num, size_t size ) { char *l; char *r; l = (char *)array; r = (char *)array + ((num-1) * size); for( ; l < r; l = l+size, r = r-size ) { memswap( l, r, size ); } }//memreverse 使用例// 関数 memreverse() の使用例です。 int main( void ) { char str1[] = "Able was I, ere I saw Elba!"; char str2[] = "Do geese see God? - O, no!"; char str3[] = "A man, a plan, a cannal - Panama!"; puts( str1 ); memreverse( str1, strlen(str1), sizeof(char) ); puts( str1 ); memreverse( str1, strlen(str1), sizeof(char) ); puts( str1 ); printf( "\n%s\n", str2 ); memreverse( str2, strlen(str2), sizeof(char) ); puts( str2 ); printf( "\n%s\n", str3 ); memreverse( str3, strlen(str3), sizeof(char) ); puts( str3 ); return 0; }//main 実行結果Able was I, ere I saw Elba! !ablE was I ere ,I saw elbA Able was I, ere I saw Elba! Do geese see God? - O, no! !on ,O - ?doG ees eseeg oD A man, a plan, a cannal - Panama! !amanaP - lannac a ,nalp a ,nam A 関連
・配列の要素を回転移動する |
|