首页 > 解决方案 > 如何在 for 循环中对整个循环无效的字符串数组元素进行这样的修改?

问题描述

我的问题与格式化字符串数组的元素有关。我想在 foo 循环中对字符串数组中的所有行应用小写字母。

但是,在同一个 for 循环中,但后来我需要以原始形式再次使用这些字符串。不幸的是,我找不到任何解决方案将字母重新排序为原始变体。我必须严格使用 DOORS 正式模块的早期部分小写字母的变体。

我怎样才能在 DXL 中获得这个结果?

例子:

我有一个字符串数组,其中包含以下术语:

AbCDefg

aBcdEFG

等等

最后我想看看 for 循环中第一次使用的结果:

abcdefg

abcdefg

ETC

而第二种用法我想看看字符串数组的原始元素:

AbCDefg

aBcdEFG

等等

标签: ibm-doors

解决方案


您可以通过创建一个函数来实现这一点,该函数将返回一个包含输入的小写值的新数组。这意味着原始值不会改变,您可以再次使用它们。

string originalArray[] = {"This ", "is ", "A ", "TeSt ", "STRING"}

string lowercaseArray[] = null

string arrayToLower(string input[])[] {
    int inputSize = sizeof(input)
    string result[inputSize]
    int i

    for (i = 0; i < inputSize; i++) {
        result[i] = lower(input[i])
    }

    return result
}

lowercaseArray= arrayToLower(originalArray)

int count = sizeof(lowercaseArray)
int j
for(j=0;j<count;j++) {
    print(lowercaseArray[j] "\n")
}

此代码示例提供了一个函数arrayToLower(),如果您传入一个字符串数组,它将返回一个新数组,其中包含原始值的小写值。上面的完整示例将显示它使用一些测试数据,您唯一需要的是:

string arrayToLower(string input[])[] {
    int inputSize = sizeof(input)
    string result[inputSize]
    int i

    for (i = 0; i < inputSize; i++) {
        result[i] = lower(input[i])
    }

    return result
}

推荐阅读