倒語(とうご) reverse-spelling

tanu_kichi
記事: 15
登録日時: 5年前

倒語(とうご) reverse-spelling

投稿記事 by tanu_kichi » 5年前

老プログラマの独り言

現在作成中のプログラムで、倒語(文字順を逆にした文字列)関数を
作る必要があって、ググってみました。

多くの方が様々なプログラミング言語でサンプル・コードを公開されており、
それらを参考にして自分流に書き直したCソースは以下になります。

CODE:

// rev_str.c
// for reverse string
#include <stdio.h>
#include <string.h>
#define STR_SIZE 32

void rev_str(char *str)
{
  int str_len = strlen(str);
  unsigned char ch; 
  for (int i = 0; i < str_len / 2; ++i) {
    ch = str[i];
    str[i] = str[str_len - i - 1]; 
    str[str_len - i - 1] = ch; 
  }
}

int main(void)
{
  char word[STR_SIZE];
  memset(word, '\0', STR_SIZE);

  strcpy(word, "dog");
  printf("%s\n", word);

  rev_str(word); // reverse string
  printf("%s\n", word);

  return 0;
}

// 実行結果
dog
god
PHP や Perl などのように倒語関数を標準で実装してる言語もあるよう
ですが、いったいどのような場面で使うのだろう?

通信制御用?暗号化用?隠語用?言葉遊び用?
実はおいしいマイウ〜関数?

私の場合、具体的にはCソースコード内の

typedef unsigned long long ULL;

という文の "unsgned long long" と "ULL" の文字列を取得したかった
ので、頭から取得するより、しっぽから読んで分離し、最後に倒語する方が
楽かなーと思ったしだいです。
(数週間後に見直した時に、「これ何やってんだろう?」状態になってる
予感がするのは気のせい?)

tanu_kichi
記事: 15
登録日時: 5年前

Re: 倒語(とうご) reverse-spelling

投稿記事 by tanu_kichi » 5年前

追記)
手持ちの Perlソースコードを倒語関数で検索すると、以下のような使い方がされてました。
1.サーバから受け取ったデータをクライアントで倒語する。
2.パッチリスト(上が新しい、下が古い)を逆順にして、古いパッチから適用する。
3.コンソールに新しい情報ほど上に表示させる。
(2、3は厳密には倒語関数ではなく、配列を逆順にする関数)
うむ、けっこう倒語関数は使いどころがあるのかもしれない。
最後に編集したユーザー tanu_kichi on 2019年12月12日(木) 00:17 [ 編集 1 回目 ]