テキスト文字列の処理専用に設計されたプログラミング言語があり、強力な数値計算を実行することのみを目的として設計されたプログラミング言語があります。ほとんどのプログラミング言語は、これら2つの両極端の中間に位置します。COBOLも例外ではありませんが、非常に強力な文字列操作機能が含まれています。実際、opensource COBOLには、他の多くのCOBOL実装よりもさらに多くの文字列操作機能があります。次の表は、文字列に関するopensource COBOLの機能を示しています。
機能 | サポートするopensource COBOL機能 |
---|---|
2 つ以上の文字列を連結する | CONCATENATE組み込み関数 STRING文(6.43) |
数値型で定義されている時刻または日付を書式文字列に変換する | LOCALE-TIME または LOCALE-DATE組み込み関数 |
バイナリ値をプログラムの文字セットに対応する文字に変換する | CHAR組み込み関数 関数を呼び出す前に引数に1を追加する。CHAR関数の説明では、数値型引数の値に1を追加しなくても同じ結果が得られるMOVE文の利用法を示している |
文字列を小文字に変換する | LOWER-CASE組み込み関数 C$TOLOWER組み込みサブルーチン(8.3.1.12) CBL_TOLOWER組み込みサブルーチン(8.3.1.38) |
文字列を大文字に変換する | UPPER-CASE組み込み関数 C$TOUPPER組み込みサブルーチン(8.3.1.13) CBL_TOUPPER組み込みサブルーチン(8.3.1.39) |
文字をプログラムの文字セットに対応する数値に変換する | ORD組み込み関数 結果から1を引く。ORD関数の説明では、数値型引数の値に1を追加しなくても同じ結果が得られるMOVE文の利用法を示している |
文字列内にある部分文字列の出現回数をカウントする | TALLYINGオプションを指定したINSPECT文(6.26) |
数値書式指定文字列を復号して数値に戻す(例えば「$12,342.19-」を「-12342.19」という値に復号する) | NUMVAL組み込み関数 NUMVAL-C組み込み関数 |
文字列または文字列を格納できるデータ項目の長さを決定する | LENGTH組み込み関数 または BYTE-LENGTH組み込み関数 |
文字列の開始位置と長さに基づいて部分文字列を抽出する | 「送信」項目に部分参照を含むMOVE文(6.28.1) |
桁区切り記号 (日本では「,」)、通貨記号(日本では「¥」)、小数点、クレジット/デビット記号、先頭または末尾の記号文字を含む、出力用の数値項目を書式化する | 受け取り項目に適用されたPICTURE編集記号(5.3)を指定したMOVE文(6.28) |
文字列項目の位置揃え(左、右、または中央) | C$JUSTIFY組み込みサブルーチン(8.3.1.6) |
文字列内の1つ以上の文字を異なる文字で単アルファベット置換する | CONVERTINGオプションを指定したINSPECT文(6.26) TRANSFORM文(6.47) SUBSTITUTE組み込み関数 および SUBSTITUTE-CASE組み込み関数 |
文字列を解析し、1つ以上の区切り文字順序に基づいて部分文字列に分割する これらの区切り文字は、単一の文字、複数の文字列、またはいずれかが重複した連続オカレンスの可能性がある |
UNSTRING文(6.49) |
文字列の先頭または末尾の空白の削除 | TRIM組み込み関数 |
部分文字列の開始文字位置と長さに基づいて、単一の部分文字列を同じ長さの別の部分文字列に置換する | 「受け取り」項目に部分参照を含むMOVE文(6.28.1) |
文字列内にある1つ以上の部分文字列を、オカレンス位置に関係なく、同じ長さの置換部分文字列に置換する | REPLACINGオプションを指定したINSPECT文(6.26) SUBSTITUTE組み込み関数 および SUBSTITUTE-CASE組み込み関数 |
文字列内にある1つ以上の部分文字列を、オカレンス位置に関係なく、異なる長さの置換部分文字列に置換する | SUBSTITUTE組み込み関数 および SUBSTITUTE-CASE組み込み関数 |