//编辑:
后续问题:
但是使函数成为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/