0
#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;
}

this is my code, and i use gcc+xcode....why there is always tell me cannot find strlen, i use both cstring and string.h...

4

2 回答 2

5

strlen适用于 a const char*,不适用于 a string。您可以(并且应该)改为使用str.length().

于 2012-12-04T01:32:03.403 回答
0

c 字符串和 c++ 字符串库彼此非常不同,不能混用。对此的解决方法是将字符串视为 ac 字符串:

strlen(str.c_str()); //convert string into char *

c++ 字符串保存和内部 c 字符串,便于移植到 c 代码和 c 方法中。

还需要注意的是cstringstring.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
于 2012-12-04T01:33:55.513 回答