- ベストアンサー
文字列strの変換規則についての質問
- 文字列strをアルファベットや数字に従って変換する関数を作成する方法について教えてください。
- 例えば、英字ならばそのすぐ前の英字に変換し、数字ならばその直後の数字に変換するという変換規則がある文字列strを扱う関数について教えてください。
- 具体的な例として、文字列strが「gifu University, Dept. of Information Engineering, 2008」の場合、正しい変換後の文字列は「hjgv Tmhudqrhsx, Cdos. ne Hmenqlzshnm Dmfhmddqhmf, 3119」となります。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
str_crypt関数に渡している引数strが > 変換前:gifu University, Dept. of Information Engineering, 2008 これに対応していることはわかりますか? strから1文字ずつ取り出して、英字・数字・それ以外の判定はできますか?
その他の回答 (5)
- JaritenCat
- ベストアンサー率37% (122/322)
いろんなやり方があると思いますが、僕なら変換前と変換後のテーブルを作ります。。 char henkan[2][]= {"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", "1234567890ZABCDEFGHIJKLMNOPQRSTUVWXYzabcdefghijklmnopqrstuvwxy"};
- php504
- ベストアンサー率42% (926/2160)
文字コードが不明なので 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)
処理系の指定が内容なので... A~Z, a~zの値が連続しているとは限らない点が、ある意味で引っ掛け問題ですね。
- asuncion
- ベストアンサー率33% (2127/6289)
> どうやって、英字と数字他を判定すればいいのでしょうか?? スペシャル・ヒント。 is何とか、という標準関数(複数あります)について調べてみてください。
- koko_u_
- ベストアンサー率18% (459/2509)
>どうやって、英字と数字他を判定すればいいのでしょうか?? そのものズバリの標準関数があるので探しましょう。
補足
どうやって、英字と数字他を判定すればいいのでしょうか?? ifを使うんですよね??