나는 두 개의 찾기와 바꾸기를 추가했으며, 모두 잘 작동합니다. 그러나 세 번째 찾기 및 바꾸기를 추가하면 \ n을 추가하여 점이있는 곳을 찾으면 전체 콘솔 출력이 비어있게됩니다. 모든 텍스트가 사라집니다. 내가 뭘 잘못하고 있는거야?C++ s.replace는 "."대체하지 않습니다. "와 함께. n"
이것은 "."을 (를) 대체하기 위해 추가하려는 코드입니다. ". \ n"을 지정하면 인쇄가 공백이됩니다. 당신은 무한 루프에 들어갈
#include <iostream>
#include <string>
using namespace std;
int main()
{
setlocale(LC_ALL, "swedish");
string const txt1 = "Foten är en kroppsdel som förekommer mycket i våra uttryck.";
string const txt2 = "På stående fot betyder omedelbart, utan förberedelse.";
string const txt3 = "Försätta på fri fot betyder att ge någon friheten.";
string const txt4 = "Sätta foten i munnen betyder att göra bort sig.";
string const txt5 = "Få om bakfoten betyder att missuppfatta något.";
string const txt6 = "Skrapa med foten betyder att visa sig underdånig eller ödmjuk.";
string const txt7 = "Stryka på foten betyder att tvingas ge upp.";
string const txt8 = "Leva på stor fot betyder att föra ett dyrbart eller slösaktigt leverne.";
string const txt9 = "Varför fick du foten???";
string t1 = txt1 + txt2 + txt3 + txt4 + txt5 + txt4 + txt5 + txt6 + txt7 + txt8 + txt9;
while (t1.find("fot") != string::npos)
t1.replace(t1.find("fot"), 3, "hand");
while (t1.find("Fot") != string::npos)
t1.replace(t1.find("Fot"), 3, "Hand");
cout << t1;
return 0;
}
내가 C++ 모르지만, 어쩌면 정규 표현식을 사용하고 있습니다; 그리고 RegExp에서'.'는 "어떤 종류의 한 문자"를 의미합니다. 따라서 모든 텍스트를 "\ n"으로 변경해야합니다. – NatNgs
나는 네가 옳다는 것을 실제로 믿는다. 그것이 점이라고 어떻게 이해해야합니까? – Thesar
어쩌면 점을 "\"와 같이 이스케이프 해 봅니다. – NatNgs