2017-09-12 14 views
0

하위 문자열을 대체하는 함수를 작성하고 있습니다 (laguange에는 grr이 없습니다). 내 출력에 이상한 문자가 나타납니다. 나는 이유를 알 수 없다.DXL - 예상치 못한 문자 출력

string replaceSubstring(string input, string targetSubstring, string substitute, bool matchCase) 
{ 
    string result = input 
    Buffer b = create 
    b = input 
    int targetStartPos 
    int targetLength 

    while (findPlainText(result, targetSubstring, targetStartPos, targetLength, matchCase)) 
    { 
     string prefixStr = b[0:targetStartPos - 1] 
     string suffixStr = b[targetStartPos + targetLength:] 

     b = prefixStr substitute suffixStr 
     result = tempStringOf(b) 
    } 

    delete b 
    return result 
} 

print replaceSubstring("Jake Lewis", "ake", "ack", false)를 실행, 나는 �*��*�is의 출력을 얻을. 이것은 인코딩 문제 일종의 것으로 보일지 모르지만, 이것이 어떻게 일어나고 있는지, 또는 어떻게 고쳐야하는지 잘 모르겠습니다.

+0

추가하는 것을 잊어 버렸지 만, "Jack Lewis"의 출력을 기대하고 있습니다. –

+0

질문에 대답하지 않지만 어쩌면 다음 기능에 도움이 될 것입니다. 이미 구현 된 기능이 있습니다. https ://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014891187 및 http://www.capri-soft.de/blog/?p=832. – Twonky

+0

와우, 이것들은 생명의 은인입니다. 감사합니다. –

답변

1

tempStringOf() 대신 stringOf()을 사용해보세요. 귀하의 처리는 괜찮지 만, b을 삭제하면 결과가 무효화됩니다.

+0

대단히 감사합니다. –