我有这个函数,编译器对我大喊“无法将字符串转换为常量字符”。
void
DramaticLetters(string s, short TimeLength)
{
for(int i = 0, sLen = strlen(s); i < sLen; i++){
cout << s[i];
Sleep(TimeLength);
}
}
我觉得strlen有问题
最佳答案
strlen()
用于 C const char*
字符串。要获取字符串 s
的长度,请使用 s.size()
或 s.length()
。如果要从 string
获取 C 字符串,请使用 s.c_str()
。
虽然 C++ 使 似乎 const char*
和 string
可以互换,但在转换 const char 时只有一种方式*
到 string
。
您也没有理由要使用 strlen
。 strlen
很可能是用循环定义的,它永远不会像 size()
那样高效,后者最有可能只是 的 length 属性的 getter字符串
类。仅在调用没有 C++ 替代项的 C 函数时将 string
转换为 C 字符串。
关于c++ - 无法将字符串转换为 const char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11970803/