c ++如何断言char数组,检查char数组是否以" 0"或包含" 0"

时间:2018-03-29 17:21:42

标签: c++ arrays

我得到了一个将char数组转换为整数的函数,如何检查给定数组是否为char以断言代码,如何检查该char数组是否以#,0"开头。这是我的代码示例: 谢谢

void arrToString(char sArr[]) {
    // integer array declare
    int iArr[strlen(sArr)];
    assert(!isdigit(sArr)); // what are the conditions that I should put
    for (int i = 0; i < strlen(sArr); i++) {
        iArr[i] = sArr[i];
        cout << sArr[i];
    }
}

int main() {
    char stringArr[] = "121212";
    arrToString(stringArr);
}

1 个答案:

答案 0 :(得分:0)

我不确定你的实际要求是什么。 我希望将问题吐出简单的问题和答案,澄清并帮助解决您的问题。

  

如何检查char数组是否包含非数字字符并断言是否包含?

__dllexprot
  

如何使用assert?

可能不直观。我猜这里可能是你问题的主要根源。最好的例子是

void arrToStringAssertWhenContainNonDigit(char sArr[]) {
    for (size_t i = 0; i < strlen(sArr); i++) {
        assert(isdigit(sArr[i]));
        cout << sArr[i];
    }
}

为方便起见,“断言”可能会被记为“确保”

  

当数组从数字零开始时如何断言?

一行实施可能是:

assert(true);    // This always pass. Assert is not thrown and assert window is not shown
assert(false);   // This always fail. Assert is always thrown and assert window is shown
assert(isdigit(sArr[i])); // Assert is thrown when sArr[i] is NOT a digit
  

如何在数组包含零位数时断言?

assert(strlen(stringArr) == 0 || stringArr[0] != '0');

注意:

不要误导零字符'0',零位0和零终止字符'0'。每个都有不同的含义,不正确使用可能会以意想不到的方式改变代码执行。