学习一些基础的C++,尝试理解函数,但是在尝试正确编写函数时遇到了很大的困难。
以下是原始代码(可以正常运行):
#include <iostream>
#include <string>
//#include "assn.h"
using namespace std;
int main()
{
string userinput;
char ch1 = '-';
cout << "Enter word: ";
getline(cin, userinput);
int i = 0;
for (i; i < userinput.size(); ++i)
{
if (userinput.at(i) >= 'a' && userinput.at(i) <= 'z')
userinput.at(i) = ch1;
}
cout << userinput << endl;
return 0;
}
以下是我尝试将其转换为函数的代码:
#include <iostream>
#include <string>
//#include "assn.h"
using namespace std;
string inputUnsolved(string input);
int main()
{
string userinput;
cout << "Enter word: ";
getline(cin, userinput);
inputUnsolved(userinput);
cout << userinput << endl;
return 0;
}
string inputUnsolved(string input)
{
char ch1 = '-';
int i = 0;
for (i; i < input.size(); ++i)
{
if (input.at(i) >= 'a' && input.at(i) <= 'z')
input.at(i) = ch1;
}
}
代码编译没有问题,但在输入用户信息并尝试执行后,会显示“分段错误”。
我尝试过几次重写,但都没有成功,我实在不知道如何修复它。该代码主要是读取一个字符串变量,并将其显示为一组破折号(猜词游戏)。
inputUnsolved
中没有返回语句,因此它无法编译成功 - 这是一个编译错误。因此,必须有更多的代码导致了程序崩溃。 - Rudolfs Bundulis