• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:わかりません・・・。)

文字列strの変換規則についての質問

このQ&Aのポイント
  • 文字列strをアルファベットや数字に従って変換する関数を作成する方法について教えてください。
  • 例えば、英字ならばそのすぐ前の英字に変換し、数字ならばその直後の数字に変換するという変換規則がある文字列strを扱う関数について教えてください。
  • 具体的な例として、文字列strが「gifu University, Dept. of Information Engineering, 2008」の場合、正しい変換後の文字列は「hjgv Tmhudqrhsx, Cdos. ne Hmenqlzshnm Dmfhmddqhmf, 3119」となります。

質問者が選んだベストアンサー

  • ベストアンサー
  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

str_crypt関数に渡している引数strが > 変換前:gifu University, Dept. of Information Engineering, 2008 これに対応していることはわかりますか? strから1文字ずつ取り出して、英字・数字・それ以外の判定はできますか?

dokaben1
質問者

補足

どうやって、英字と数字他を判定すればいいのでしょうか?? ifを使うんですよね??

その他の回答 (5)

回答No.6

いろんなやり方があると思いますが、僕なら変換前と変換後のテーブルを作ります。。 char henkan[2][]= {"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", "1234567890ZABCDEFGHIJKLMNOPQRSTUVWXYzabcdefghijklmnopqrstuvwxy"};

  • php504
  • ベストアンサー率42% (926/2160)
回答No.5

文字コードが不明なので char u_alpha[27] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','A'}; for (i = 26; i > 0; i--) { if (*str == u_alpha[i]) { *str = u_alpha[i - 1]; break; } } このような処理を小文字と数字(数字は逆方向)でもやればいいでしょう

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

処理系の指定が内容なので... A~Z, a~zの値が連続しているとは限らない点が、ある意味で引っ掛け問題ですね。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.3

> どうやって、英字と数字他を判定すればいいのでしょうか?? スペシャル・ヒント。 is何とか、という標準関数(複数あります)について調べてみてください。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.2

>どうやって、英字と数字他を判定すればいいのでしょうか?? そのものズバリの標準関数があるので探しましょう。

関連するQ&A