文字シャッフル
コードを貼るテスト。
2バイト文字のみの文字列から「つじしれゅんと」のようなアナグラムを作ります。
関数名は「tanisige inngurissyu」という由緒ある命名法です。
void kanji_syaffuru(char *buf) { int cnt, i, n[100], tmp; char buf2[1024]; int len = strlen(buf); if (len % 2) { fprintf(stderr, "err. in kanji_syaffuru().\n"); return; } cnt = len/2; if (cnt > 100) cnt = 100; if (!cnt) return; for(i=0;i<cnt;i++) {n[i] = i;} for(i=0;i<cnt;i++) { int dest = randint0(cnt); tmp = n[dest]; n[dest] = n[i]; n[i] = tmp; } buf2[0] = 0; for(i=0;i<cnt;i++) { strncat(buf2, &buf[n[i]*2], 2); } strcpy(buf, buf2); }