現在作成中のプログラムで、倒語(文字順を逆にした文字列)関数を
作る必要があって、ググってみました。
多くの方が様々なプログラミング言語でサンプル・コードを公開されており、
それらを参考にして自分流に書き直したCソースは以下になります。
// 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
ですが、いったいどのような場面で使うのだろう?
通信制御用?暗号化用?隠語用?言葉遊び用?
実はおいしいマイウ〜関数?
私の場合、具体的にはCソースコード内の
typedef unsigned long long ULL;
という文の "unsgned long long" と "ULL" の文字列を取得したかった
ので、頭から取得するより、しっぽから読んで分離し、最後に倒語する方が
楽かなーと思ったしだいです。
(数週間後に見直した時に、「これ何やってんだろう?」状態になってる
予感がするのは気のせい?)