//编辑:
后续问题:

但是使函数成为isUnique(const char *s)然后将函数调用为isUnique(str.c_str())不允许我在函数中修改字符串str//

我在传递字符串时遇到问题:

bool isUnique(char *s)
{
    int arr[256] = {0};
    while(*s)
    {
        arr[*s]++;
        if(arr[*s]>1)
        {
            cout<<"not unique";
            return false;
        }
    }
}
int main()
{
    string str = "abcda";
    cout<<"1: True : unique, 2: False: Not Unique"<<endl<<isUnique(str);
}

最佳答案

将参数传递为:

isUnique(str.c_str());

并将函数的参数类型设为const char*:
bool isUnique(const char *s)

因为std::string::c_str()返回const char*

甚至更好,将参数设置为const string&:
bool isUnique(const std::string & s);

然后按照您的要求传递:isUnique(str)。在函数内部,您可以使用s[i]来访问字符串中的字符0 <= i < s.size()

关于c++ - 将字符串作为参数传递,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8787243/

10-10 07:25