如何在for循环中对字符串数组的元素进行这样的修改,而该修改对整个循环无效?

时间:2018-08-01 19:06:50

标签: ibm-doors

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

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

如何在DXL中获得此结果?

示例:

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

AbCDefg

aBcdEFG

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

abcdefg

abcdefg

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

AbCDefg

aBcdEFG

1 个答案:

答案 0 :(得分:0)

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

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
}