タグ

stringに関するgologo13のブックマーク (30)

  • PHP: String 関数 - Manual

    参考 より強力な文字列処理および処理関数については、 Perl 互換正規表現関数 を参照ください。 マルチバイト文字のエンコーディングを扱うときは、 マルチバイト文字列関数. を参照ください。 目次addcslashes — C 言語と同様にスラッシュで文字列をクォートするaddslashes — 文字列をスラッシュでクォートするbin2hex — バイナリのデータを16進表現に変換するchop — rtrim のエイリアスchr — 数値から、1バイトの文字列を生成するchunk_split — 文字列をより小さな部分に分割するconvert_cyr_string — キリル文字セットを他のものに変換するconvert_uudecode — uuencode された文字列をデコードするconvert_uuencode — 文字列を uuencode するcount_chars — 文字列

    PHP: String 関数 - Manual
  • 世の中には二種類の文字列がある… - やた@はてな日記

    今回の内容は,0 を終端とする文字列と,長さを別に持つ文字列の扱いに関する小ネタです. 検索用のインタフェースを用意するとき,どちらか一方を選択するのであれば,後者にすると思います.しかし,できれば前者も提供したいと思うのが人情というものでしょう. という理由から,marisa-trie では,どちらも使えるようになっています.とはいえ,別々に実装するのは甚だ面倒です.検索用の関数は lookup(), find() 系列, predict() 系列と大量にあり,ほとんど同じになるものを別々に実装するなんて正気の沙汰ではありません.以降の修正でどちらか一方だけ直し忘れたなんてのも,実にありそうな話です. シンプルな対策は,0 を終端とする文字列を受け取ったとき,まず長さを求めてやるというものです.しかし,長い文字列が与えられる可能性がある場合,この手は危険です.100MB くらいのテキスト

    世の中には二種類の文字列がある… - やた@はてな日記
  • std::string まとめ - IT戦記

    注意 gcc version 4.3.2 の std::string 私的まとめ 実装 クラス std::basic_string::_Rep は以下の情報を持つ 文字列長 _M_length 確保された容量 _M_capacity 参照カウンタ _M_refcount アロケータ(std::basic_string::_Alloc)の派生クラス(std::basic_string::_Alloc_hider)が文字列へのポインタをメンバとして持つ(_M_p) アロケータは空のクラスであることが多く、そのための 1byte の容量を節約するため(empty base optimization) std::basic_string のメンバは std::basic_string::_Alloc_hider のインスタンス _M_dataplus だけ つまり、 sizeof(std::str

    std::string まとめ - IT戦記
  • std::string の正体(gcc-4.4.3)と細かい話 - やた@はてな日記

    # 環境依存な内容な上,無駄に細かい話なので,「そういうこともあるかもねー」くらいに流しちゃってください. (追記 2011-01-11)新しい規格では std::string の Copy on Write(CoW: 書き込み時に複製)が実質禁止になるとのことです.後,gcc 4.5 の時点で CoW はやめてしまうみたいですし,「そんな時代もあった」くらいに軽く流しちゃってください.id:gintenlabo さん,コメントありがとうございます. (追記の続き)個人的には,std::string の CoW 動作は挙動が分かりにくくなるので止める方に賛成です.でも,std::vector なんかを拡張するときはどうするのかな…?コピーしてしまうのか,swap() を使うようにするのか…. (さらに追記 2011-01-11)おおっと,ムーブコンストラクタにムーブ代入演算子なんてものが…

    std::string の正体(gcc-4.4.3)と細かい話 - やた@はてな日記
  • strtok

    文字列を区切り文字で分解する 【書式】 #include <string.h> char *strtok(char *s1, const char *s2); 【説明】 分解対象文字列 s1 を、文字群 s2 中の文字を区切りに字句(トークン)に分解します。 次のような手順で strtok() を用いて文字列をトークンに分解することが出来ます。 最初の呼び出しでは s1 には分解対象の文字列を指定します。トークンがあれば、strtok() はトークンへのポインタを返却します。 2回目以降の呼び出しでは s1 に NULL を指定します。分解できるトークンがあるうちは、strtok() はトークンへのポインタを返却します。 トークンがなくなると strtok() は NULL を返却します。 strtok() はトークンへのポインタを返却しながら、分解対象文字列 s1 中の区切り文字に空文字

    gologo13
    gologo13 2010/09/25
    regexpは使えない split の代わりにはなる感じ.
  • split : 文字列を分割 « airgreen

    photo credit: Emery_Way 自作: #include <string> #include <vector> #include <iostream> #include <boost/foreach.hpp> /** * split 関数 * @param str   文字列 * @param delim デリミタ * @return 分割された文字列 */ std::vector<std::string> split(std::string str, std::string delim) { std::vector<std::string > result; int start = 0, end; while ((end = str.find_first_of(delim, start)) != str.npos) { // if (end - start > 0) //

  • Boost String Algorithms Libraryの使い方 その1:trim/trim_left/trim_right - C++Builder好きの秘密基地

    VCLのAnsiStringやMFCのCStringと比べて、C++標準の汎用文字列クラスであるstd::stringは機能が貧弱。そいつを補完するのがboostのString Algorithms Library。 以下はその簡単な使い方。 1.trim/trim_copy trim関数は文字列の両端から空白を除去する。trim_copyは空白を除去した結果を返し、文字列そのものには影響を与えない。 #include <string> #include <boost/algorithm/string.hpp> void foo() { std::string ss(" foo "); boost::trim(ss); }2.trim_if/trim_copy_if trim_ifは文字列の両端から条件を満たした部分を除去する。trim_copy_ifはtrim_copy同様、結果のみを返

    Boost String Algorithms Libraryの使い方 その1:trim/trim_left/trim_right - C++Builder好きの秘密基地
  • CGI-Perl 基礎編 (その五) 文字列関数 substr、index、split、localtime、crypt - SAK Streets

    CGI-Perl 基礎編 (その五) 文字列関数 substr、index、split、localtime、crypt ■文字列演算子 . 文字列の結合 【例】 $a = 'abc'; $b = 'def'; $c = $a . $b; ** $c には、'abcdef' がセットされます。 ■文字列関数 lc 小文字に変換 uc 大文字に変換 substr n 番目から n バイトの文字列を切り出し length 何バイトあるか数える index 指定文字列が何番目から存在するか調べる rindex 指定文字列が最後から何番目に存在するか調べる sprintf 書式指定変換をする chomp 最後の CR/LF 除去 s 文字変換 tr 文字変換 split セパレータによる文字列分割 join 配列文字列結合 reverse 配列反転 localtime ローカル時間 crypt 文字

  • 3.6.1 文字列メソッド

    codec に登録された文字コード系 encoding を使って文字列をデコード します。encoding は標準でデフォルトの文字列エンコーディング になります。標準とは異なるエラー処理を行うために errors を 与えることができます。標準のエラー処理は 'strict' で、エンコード に関するエラーは UnicodeError を送出します。 他に利用できる値は 'ignore' 、 'replace' および 関数 codecs.register_error によって登録された名前です。 これについてはセクション 4.8.1節を参照してください。 バージョン 2.2 で 新たに追加 された仕様です。 バージョン 2.3 で 変更 された仕様: その他のエラーハンドリングスキーマがサポートされました

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 文字列の操作 - ひきメモ

    文字列のメソッドは正規表現を使うより速いので、文字列の操作をする場合は、まず文字列のメソッドでできないかを調べた方がよいです。 文字列の一部を取り出す >>> s = "python" >>> s[2] # 2番目の要素を取り出す 't' >>> s[1:4] # 1番目から3番目までの文字を取り出す 'yth' >>> print s[2:] # 2番目から末尾までの文字を取り出す そん >>> s[0] = "P" # 文字列は不変なので、要素への代入は不可 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' object does not support item assignment 文字列が○○だけであるかを調べる >>> "abcABC123".isaln

    文字列の操作 - ひきメモ
  • Department of Computer Science: BSA 2005

    Biosequence Algorithms (Spring 2005) Home Page Biosekvenssien k�sittelyalgoritmit (kev�t 2005) -kurssin kotisivu Tietojenk�sittelytieteen syvent�vien opintojen (III-V vuosi) kurssi (3 ov) Biosequence Algorithms is an elective graduate level (laudatur) course (3 cu) in Computer Science. Goals of the course: To get familiar with the fundamental algorithmic ideas and methods, that is, string algorith

  • http://d.hatena.ne.jp/hyu_mu/20100731/1280535832

  • StringSearch – high-performance pattern matching algorithms in Java

    StringSearch High-perfor­mance pattern matching algo­rithms in Java The Java language lacks fast string searching algorithms. StringSearch provides implementations of the Boyer-Moore and the Shift-Or (bit-parallel) algorithms. These algorithms are easily five to ten times faster than the naïve implementation found in java.lang.String. Download Documentation This library contains impleme

  • ESMAJ : EXACT STRING MATCHING ALGORITHMS

    Contents EXACT STRING MATCHING ALGORITHMS Animation in Java Christian Charras - Thierry Lecroq Laboratoire d'Informatique de Rouen Université de Rouen Faculté des Sciences et des Techniques 76821 Mont-Saint-Aignan Cedex FRANCE

    gologo13
    gologo13 2010/07/30
    すごすぎるでしょこれ.
  • 逆引きRuby - 文字列

    逆引きRubyRubyを使ってやりたい事から、その方法を調べられる逆引きのリファレンスです。 逆引きRubyはもともとWikiで運用していました。このため、サイトのコンテンツは私以外の多くの方によって作成・編集されたものです。 2017年に静的HTML(jekyll)の管理へ移行しましたが、2018年10月からScrapboxへ移行しました。どなたでも編集いただけますので、ご協力いただける方はよろしくお願いします。 逆引きRuby (https://scrapbox.io/rubytips/逆引きRuby)

  • Ruby実用例 〜超簡単なデータ処理〜 - [物理のかぎしっぽ]

    プログラムは,人がやるには苦痛を伴う単調な作業を正確に素早く行ってくれます.機械的に測定した実験データなどは,決まった処理を繰り返し行わなければならないことがあります.このような処理が,プログラムは大変得意です. ここではRubyプログラムの便利さの一端を感じるため,「カンマで区切られた数値の,各行の平均値を取って出力する」という極簡単な処理を行ってみます. プログラムの名前 † 名前は結構重要です.できれば何をするか分かる名前を付けましょう.ここでつくるプログラムは,各行の平均値をとるので「rowAverage.rb」という名前にしておきます.プログラムはコマンドラインで $ rowAverage.rb infile とすれば実行できるようにします.「infile」というのは,入力データを含んだテキストファイル名を仮に表しています.実行時,実際のファイル名に置き換えてください. ↑ デー

  • stringstreamのクリアの仕方 - りんでん記

    メモ。はてブでもよかったんだけど。 ググってみたらこんな記事をみつけた。 > # ちなみに、stringstream の文字列のクリアは > # stringstremam::str("") で、一度はまりました(^^; (中略) stringstream::str("")は文字列ストリームのバッファを クリアする方法ですが、意外と知らない人が多いようです。 うわぁ、はまったー 知りませんでしたw (以下、6/27 追記) ちなみに、stringstream::clear()はストリームの状態フラグをクリアするのに使うみたい。 こんな感じ↓ #include <iostream> #include <sstream> using namespace std; int main(void) { string str; stringstream ss; ss << "abc"; ss >> s

    stringstreamのクリアの仕方 - りんでん記
  • stringstreamの罠 - C/C++サンプル

    stringstreamの使いかたはcoutと同様に「 1: #include<iostream> 2: #include<sstream> 3: 4: using namespace std; 5: 6: int main( int argc, char **argv ) 7: { 8: stringstream ss; 9: 10: for( int i=0; i<10; i++ ){ 11: ss << "sample" << i << ".dat"; 12: cout << ss.str() << endl; 13: } 14: 15: return 0; 16: } 「sample0.dat」「sample1.dat」...「sample9.dat」と1行ずつ表示させたいわけだが、これを実行するとどうなるかわかるだろうか?実行結果は以下の通りである。 sample0.da

  • Spaghetti Source - std::string の基本操作

    ソースコード vector<string> splitAll(string s, string t) { vector<string> v; for (int p = 0; (p = s.find(t)) != s.npos; ) { v.push_back(s.substr(0, p)); s = s.substr(p + t.size()); } v.push_back(s); return v; } vector<string> split(string s, string t) { vector<string> v; int p = s.find(t); if (p != s.npos) { v.push_back(s.substr(0, p)); s = s.substr(p + t.size()); } v.push_back(s); return v; } string re