我得到了一个将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);
}
答案 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'。每个都有不同的含义,不正确使用可能会以意想不到的方式改变代码执行。