Nice solution there manhaeve5! Only comment is that you have a colon in there where a semicolon should be (in second for loop's if statement).
ibaraku, since DIC is always about expanding your mind I have also created a quick little method you can find useful to accomplish the same thing. So you have a choice to go with either. It is up to you.

CODE
#include <iostream>
#include <string>
using namespace std;
int main (){
// Create our line of text
string line = "strawberry- fields - The Beatles";
// Set a flag to determine if last character
bool lastdash = false;
// Find our last dash
size_t i = line.rfind('-');
// Loop through while we have dashes being found
while (i != string::npos){
// If it was the last dash, skip it, otherwise replace with space.
if (!lastdash) { lastdash = true; }
else { line[i] = ' '; }
// Decrement our found value so the rfind will find next match
i--;
i = line.rfind('-',i);
}
cout << "Result is: " << line << endl;
return 0;
}
Using rfind we start from the end and move through the string, skipping the first instance we find (which is actually the last dash in the string) and replace all the others with your space. Just read through the comments to see how I did everything.
Enjoy!