I am trying to use the CString.replace method and seem to not be replacing the rest of the string.

tmpStr.Replace(_T('in.'), _T(' ')); 

is the specific line. I want to remove all instances of the string "in." in the CString tmpStr. But it seems it only to replace the 'i' in "in." with a space. And the rest it leave alone.

Is there a way to replace a string with a string?

1 Answer

You're not calling the overload that you intend to call. CString::Replace has an overload that takes two characters, that's the one your function call invokes. Change 'in.' to "in." (note the double quotes instead of single quotes). Similarly, change ' ' to " ".

'in.' is a multicharacter literal, and how this is interpreted is implementation defined. It seems VC just considers it to be the same as i.

0

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.