cobol學習04——字符串及其操作


1.概念:由一組連續字符形成的數據。

  COBOL中不需要對字符串添加任何結束標志。

2、使用STRING語句合並字符串

  STRING

    FIRST-NAME  DELIMITED  BY  SAPCE

    ' '  DELIMITED  BY   SIZE

    LAST-NAME  DELIMITED  BY  SPACE

    INTO  FULL-NAME.

  其中:DELIMITED  BY的SPACE選項用於截掉字符串前后的空格。

    SIZE用於將合並的字符串全部內容合並

    ' '  DELIMITED  BY   SIZE:是在FULLname中添加一個空格

3、相應的UNSTRING語句拆分字符串

  UNSTRING  FULL-NAME

    DELIMITED  BY  ' '

    INTO  FIRST-NAME

        LAST-NAME.

    DISPLAY  'FULL NAME:',FULL-NAME.

    DISPLAY  'FIRST NAME:',FIRST-NAME.

    DISPLAY  'LAST NAME:'LAST-NAME.

4.用INSPECT語句替換字符串

  主要對字符串中的指定部分進行替換。

  例:

DATA DIVISION.
WORKING-STORAGE SECTION
01 DATE1 PIC X(10).
01 YEAR PIC X(4).
01 MONTH PIC X(2).
01 DAY1 PIC X(2).

01 TEST-STRING PIC X(10).
01 SOURCE-STRING PIC X(10).
PROCEDURE DIVISION

MOVE '2008/01/15' TO DATE1.
UNSTRING DATE1
DELIMITED BY '/'
INTO YEAR
MONTH
DAY1.
DISPLAY 'DATE:',DATE1.
DISPLAY 'YEAR:',YEAR.
DISPLAY 'MONTH:',MONTH.
DISPLAY 'DAY:',DAY1.

MOVE 'ABCD0A0B8B' TO TEST-STRING.
DISPLAY 'BEFORE INSPECT:',TEST-STRING.
MOVE TEST-STRING TO SOURCE-STRING.
INSPECT SOURCE-STRING
REPLACING ALL 'A' BY 'B'.
INSPECT SOURCE-STRING
REPLACING ALL '0' BY '_'.
INSPECT SOURCE-STRING
REPLACING LEADING 'B' BY '*'.
INSPECT SOURCE-STRING
REPLACING FIRST '*' BY '$'.
DISPLAY 'AFTER INSPECT:'SOURCE-STRING.

STOP RUN.

對全體數據進行替換:INSPECT SOURCE-STRING REPLACING ALL 'A' BY 'B'.

對開始數據進行替換:INSPECT SOURCE-STRING REPLACING  LEADING 'A' BY 'B'.

對首個字符進行替換:INSPECT SOURCE-STRING REPLACING FIRST 'A' BY 'B'.

5.字符串替換

  以原字符串的字符為基礎進行格式轉換。

  a、大小寫轉換

  例: FUNCTION LOWER-CASE(TEST-STRING) TO NEW-STRING.

       FUNCTION UPPER-CASE(TEST-STRING) TO NEW-STRING.

  b、將字符串轉換為具體數值 

  COMPUTE NUM-O1 =

    FUNCTION NUMVAL(NUM-STR-01).  

  DISPLAY 'CONVERT AFTRE:',NUM-O1.

6.子字符串

  相當於原字符串的一個子集。

  例:MOVE  '2008/09/23'  TO  DATE.

    MOVE  DATE(1:4)  TO  YEAR.

    MOVE  DATE(6:2)  TO  MONTH. 

    MOVE  DATE(9: )  TO  DAY.  //表示從第9位到字符結束

7.通過MAX和MIN得到最大和最小字符串

  MOVE  FUNCTION  MAX(STR-1 STR-2 STR-3) TO MAX-STR.

  MOVE  FUNCTION  MIN(STR-1 STR-2 STR-3) TO MIN-STR.

  MOVE  FUNCTION  MAX(NUM-1 NUM-2 NUM-3) TO MAX-STR.

  MOVE  FUNCTION  MIN(NUM-1 NUM-2 NUM-3) TO MIN-STR.

8.求取字符串的長度

  使用FUNCTION LENGTH或者LENTH OF 得到字符串的長度。

  例:  

    MOVE FUNCTION LOWER-CASE(TEST-STRING) TO NEW-STRING.
    DISPLAY 'NEW-STRING:',NEW-STRING.

 

 

 

 

 

 

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM