gpt4 book ai didi

c++ - 将字符串作为参数传递

转载 作者:太空狗 更新时间:2023-10-29 23:25:46 26 4
gpt4 key购买 nike

//编辑:跟进问题:

但是将函数设为 isUn​​ique(const char *s)然后将函数调用为 isUn​​ique(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);
}

ERROR:cannot convert 'std::string {aka std::basic_string}' to 'char*' for argument '1' to 'bool isUnique(char*)'

最佳答案

将参数传递为:

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com