计算字符串中的字符数

时间:2016-06-24 20:35:06

标签: cobol

我通过定义字符串中的字符数来解决问题。 例如,我有以下代码:

.dropdown-toggle[aria-expanded="true"] {
  background:#FFF !important;
  color:#000 !important;
}

我必须写什么才能找到SOURCE-STRING的长度(用值写的字符串“字符串的长度”)。 长度必须为26个字符(包括前导空格= 2,最终空格= 4)。

2 个答案:

答案 0 :(得分:3)

比尔说:

  

COBOL没有“字符串”。在该字段中有28个尾随空白,并且所有28个相同。

如果你想知道长度,包括使用的尾随空格的数量但不知道字段中的尾随空格,那么不要grep "Project(" NameOfYourSolution.sln | cut -d'"' -f4中的某些内容(或使用MOVE)但是初始化该字段(例如使用VALUE)并使用MOVE ALL 'x00' TO FIELD来获取数据(这样您甚至可以使用“C”字符串)。这允许您执行STRING

需要考虑的其他选择:

  • INSPECT ... BEFORE FIRST x'00'
  • FUNCTION LENGTH (content)(必须以1开头)

当您向问题添加更多信息(通过编辑)时,我们可以给出更好的答案(包括您使用的COBOL编译器)。

答案 1 :(得分:0)

您可以使用NULL来表示字符串的结尾。

首先,将SOURCE-STRING初始化为NULL

01 SOURCE-STRING PIC X(50) VALUE NULL.

然后,不要使用MOVE将字符串移动到变量,而是使用STRING语句:

STRING "  The length of string    " INTO SOURCE-STRING

前26个字符移入SOURCE-STRING,但其余字符未受损,在字符串末尾留下NULL个字节。然后,您可以确定NULL字节的开始位置。

或者,您可以STRING使用POINTER自动计算移动的字符数:

WORKING-STORAGE SECTION.

 01 SOURCE-STRING PIC X(50) VALUE NULL.
 01 STR-PTR PIC 9(3).

PROCEDURE DIVISION.

    MOVE 1 TO STR-PTR
    STRING "  The length of string    "
    INTO SOURCE-STRING
    POINTER STR-PTR
    SUBTRACT 1 FROM STR-PTR

STR-PTR将包含实际字符串的长度。请注意,在使用STR-PTR命令之前,必须将1显式设置为STRING