如何从void函数输出字符串
How do I output a string from a void function?
我制作了一个void函数,目前正试图输出通过它传递字符串变量的结果,但出现了这个错误,我不确定它意味着什么。我过去曾使用过这段代码来输出void函数,所以我不确定为什么这段代码不同。下面,在if循环中的行上,是错误源所在的行。
if(choice == 'r')
{
cout << "Edited text: " << replaceExclamation(a) << endl;
}
void replaceExclamation(string usrStr)
{
for(int i = 0; i < usrStr.length(); ++i )
{
if(usrStr.at(i) == '!')
{
usrStr.insert(i, ".");
}
}
}
///错误为:error:no match for'operator<lt;'(操作数类型为"std::basic_stream"answers"void"(
void
表示函数不返回任何值。
因此,cout << "Edited text: " << replaceExclamation(a) << endl;
是错误的。
要这样写,您必须更改函数以返回string
值。
string replaceExclamation(string usrStr)
{
for(int i = 0; i < usrStr.length(); ++i )
{
if(usrStr.at(i) == '!')
{
usrStr.insert(i, ".");
}
}
return usrStr;
}
在代码中,修改应用于局部变量,不会反映在main中。使用pass-by-reference,如:
if(choice == 'r')
{
replaceExclamation(a); // Allow the variable to be modified before printing
cout << "Edited text: " << a << endl;
}
和
void replaceExclamation(string& usrStr ) // Pass parameter by reference
{
for(int i = 0; i < usrStr.length(); ++i )
{
if(usrStr.at(i) == '!')
{
usrStr.insert(i, ".");
}
}
}
相关文章:
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何从void函数输出字符串
- 输出字符串数组
- 如何输出字符串第二个单词的第一个字母?
- 多线程环境中的输出字符串流出现问题
- 输出字符串到cmd显示的右显示,但未被认为是命令
- 读取文本文件并输出字符串
- 输出字符串使用 C++ 覆盖 Linux 终端上的最后一个字符串
- 如何在C++中输出字符串的向量
- 无法从类模板输出字符串
- FWRITE 输出字符串不正确
- Qt单元测试输出字符串长度截止
- 无法显示输出字符串
- 如果条目大于90,则输出字符串的布尔函数
- C++不带 'n' 或 endl 的输出字符串将在字符串末尾输出'#'
- 在C++中输出字符串和 strncpy 时遇到问题
- 获取c#输出字符串参数值为c++ BSTR*
- C++初学者,开关不输出字符串的第一个字符
- 输出字符串/字符错误(c++)
- Getline()省略输出字符串的第一个字母