#include "Q1-VerifyUniqueCharInString.h"
#include <cstring>
#include <stdio.h>
#include <string.h>
using namespace std;
bool isUniqueChar(string str)
{
int length=strlen(str),i=0;
bool tab[] = new bool[length];
if (length > 0xff) {
return false;
}
for (; i<length;++i) {
if (str[i]) {
return false;
}
tab[str[i]]=true;
}
return true;
}
这是我的代码,我使用gcc + xcode ....为什么总是告诉我找不到strlen,我同时使用cstring和string.h ......
答案 0 :(得分:5)
strlen
适用于const char*
,而不是string
。您可以(而且应该)使用str.length()
。
答案 1 :(得分:0)
c字符串和c ++字符串lib彼此非常不同,并且不能混合使用。解决这个问题的方法是将字符串视为c字符串:
strlen(str.c_str()); //convert string into char *
c ++ string和内部c字符串,便于移植到c代码和c方法中。
值得注意的是cstring
和string.h
引用相同的文件,c是用于组织c ++库和c库的c ++方法
#include <cstdio>
#include <cstdlib> //could be stdlib.h, but used to show that this lib is a c lib
#include <csting> //same as string.h
#include <string> //c++ string lib