タグ

関連タグで絞り込む (3)

タグの絞り込みを解除

stringに関するtypesterのブックマーク (3)

  • XSでCの文字列操作関数を使用するべきでない理由 - Islands in the byte stream (legacy)

    またはRe: PerlとC言語の型に対応する値への相互変換 XSでCの文字列操作関数の使用はなるべく避けるべきです。Cの文字列操作関数は危険で使いにくいものです。その代わりに、Perlが提供する安全で使いやすいSV APIを使ったほうが余計なことを考えずに済みます。 まずC言語でプログラミングする際の一般論として、strcat()やsprintf()などの文字列長を制御できない関数を使用するべきではない、というものがあります。これらの関数を使用して安全なプログラミングをするのは非常に困難であり、代わりにstrncat()やstrlcat()、あるいはsnprintf()といった文字列長を制御できる関数を使うべきです。 またPerl/XSに関して言うならば、そもそもCの文字列操作関数を使う必要はほとんどありません*1。char*の代わりにSV*を使うようにし、なるべくPerl API で文字

    XSでCの文字列操作関数を使用するべきでない理由 - Islands in the byte stream (legacy)
  • Perl で半角カナと全角カナの変換をする : Serendip – Webデザイン・プログラミング

    Perl を使って半角カタカナと全角カタカナの変換をするスクリプトを、標準モジュールの Encode.pm と Unicode::Japanese と Lingua::JA::Regular::Unicode を使ってそれぞれ変換スクリプトを書いてみる。 まずは、標準モジュールの Encode.pm を使った場合。 変換を文字コード euc-jp で行うために、変換前と変換後に utf-8 との文字コード変換を行う必要があった。 use Encode; use Encode::JP::H2Z; my $str_z = "Hello World.全角カタカナデス。 12345 67890"; my $str_h = "Hello World.全角カタカナデス。 12345 67890"; # 全角カナ→半角カナ Encode::from_to($str_z, "utf-8", "euc-j

  • String::Random - 日向夏特殊応援部隊

    ランダムな文字列生成モジュール。 自分で実装しろよwって話もあるけど、使ってみたら意外と融通が効いたので、ご紹介。 #!/usr/bin/perl use strict; use warnings; use String::Random; local $\ = "\n"; my $rand = String::Random->new; print $rand->randpattern('c' x 32); print $rand->randregex('[a-zA-Z0-9]{32}'); で下記のような結果になります。 utfjtdmvnkjvqcclefoorqftuonklbzf ezAmL2ZaV599QLasO92PcAHuae2RnoNv正規表現で指定出来たりするのは凄い便利ですよねぇ。

    String::Random - 日向夏特殊応援部隊
    typester
    typester 2007/03/28
    おお、いい
  • 1