【发布时间】:2017-04-07 18:41:09
【问题描述】:
我想要一个计算唯一字符数的函数。例如,如果我有aabbcc,我希望它返回3。如果aab 我想要2 等等....
我的尝试是构造一个函数来检查之前是否出现过数字,然后将其用作if 条件。
我的代码是:
bool firstocc(char* t, int i){
for(int j = 0;j < i;j++){
if(t[j] == t[i]) return false;
return true;
}
}
int h(char* t){
int c=0;
for(int i=0; t[i+1]!=0;i++){
if(firstocc(t,i)){
c++;
}
return c;
}
}
int main()
{
cout<< h("aabbc");
}
函数总是返回零。它有什么问题?
【问题讨论】:
-
调试器是解决此类问题的正确工具。 在询问 Stack Overflow 之前,您应该逐行浏览您的代码。如需更多帮助,请阅读How to debug small programs (by Eric Lippert)。至少,您应该 [编辑] 您的问题,以包含一个重现您的问题的 Minimal, Complete, and Verifiable 示例,以及您在调试器中所做的观察。
-
您是否尝试过使用调试器?
-
我已经尝试了你所说的一切,但我仍然无法解决我的问题。这就是我决定写在这里的原因
-
如果输入总是这样
aabbbccc那么你不需要扫描,当符号改变时计数。如果要传递字符串文字,参数必须是const char *而不是char * -
输入也可以是 11aab。
标签: c++ function loops boolean