我需要帮助获取声明的字符串函数来将输入文件的空白区域更改为特定字符。
if (infile.fail())
{
cout << "The file doesn't exist";
exit(-1);
}
else
{
numBooks = readFile (infile, magSub, 260);
for (i=0; i<numBooks; i++)
{
cout << "Last Name: " << magSub[i].lastName << endl;
cout << "First Name: " << magSub[i].firstName << endl;
cout << "Street Address: " << magSub[i].address << endl;
cout << "City: " << magSub[i].city << endl;
cout << "State or Province: " << magSub[i].state << endl;
cout << "Country: " << magSub[i].country << endl << endl;
cout << "Zip or Postal Code: " << magSub[i].zip << endl;
cout << "Expiration Date: " << magSub[i].expDate << endl;
cout << "Subscriber Number: " << magSub[i].subNum << endl << endl;
}
writeFile(outfile, magSub, numBooks);
}
}
void fillSpace (string &expDate)
{
for (int i=0; expDate.length(); i++)
{
if (isspace(expDate[i]))
expDate[i] = '0';
}
}
我在main上面声明了函数。我知道我需要调用该函数,但我不能让它改变空格。
答案 0 :(得分:0)
在fillSpace
的代码中,您没有检查字符串条件的结束。您应该使用i<expDate.length()
来检查字符串的结尾。
答案 1 :(得分:-1)
您错过了for
功能的fillSpace
循环中的检查条件。
for (int i=0; i < expDate.length(); i++)
并且用于调用该函数
你必须声明一个字符串,它将存储来自magSub[i].expDate
的字符串。
然后将该字符串传递给函数fillSpace
。
之后,您将获得替换为char space with '0'
的字符串。
cout << "Expiration Date: " << magSub[i].expDate << endl;
请使用以下代码:
string temp = magSub[i].expDate; // copy the string to the temp string/char array
fillSpace (temp); // Missing Line for function call
cout << "Expiration Date: " << temp << endl; // replace line with
希望 这会帮助你。