我在 C++ 或 C# 中找到了几个答案,但没有找到 C 的答案。
我需要知道如何计算字符串中的字符数。目标是确定字符串中是否存在封闭块(以大括号'{'
,为界'}'
)。现在我有以下内容:
int closedBlock(char* value) {
int open = 0;
int i;
for (i = 0; i < strlen(value); i++) {
if (!strcmp("{", value[i])) {
open++;
} else if (!strcmp("}", value[i])) {
open--;
}
}
return !open;
}
但它在第一次if
检查后崩溃。我不太清楚为什么这不起作用。我想这与错误的指针有关(这似乎总是 C 中的问题),但我无法弄清楚。除了工作代码之外,解释为什么我的代码不好也会很有帮助。
谢谢。
笔记
我知道这只是检查数量'{'
是否等于数量'}'
,而不是真正检查是否存在正确关闭的块。解决这个问题后,我会解决这个问题。