调用函数c ++后,用空格替换空格

时间:2014-04-18 03:52:19

标签: c++ arrays string function file-io

我需要帮助获取声明的字符串函数来将输入文件的空白区域更改为特定字符。

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上面声明了函数。我知道我需要调用该函数,但我不能让它改变空格。

2 个答案:

答案 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

希望 这会帮助你。