wxWidgets을 사용하여 응용 프로그램을 다시 작성합니다. 목표 중 하나는 이전 방식을 현지화 된 문자열로 대체하는 것입니다. 또 다른 가능한 목표는 Python 인터프리터를 응용 프로그램에 포함시키는 것입니다. 어쨌든 중괄호를 사용하는 파이썬과 같은 문자열 형식을 사용할 수있는 C/C++ 코드 나 라이브러리가 좋을 것입니다.wxString : Python3과 같은 자리 표시자를 사용하여 문자열 서식을 구현하는 C/C++ 코드가 있습니까?
파이썬을 모른다면 다음은 format 함수의 문서입니다. Format Specification Mini-Language 내부 및 Format examples에 대한 참조를 찾을 수 있습니다. 해당 문서의 일부 추출물 ...합니다 (>>>
대화 형 파이썬 모드의 프롬프트, 아래 라인이 호출의 결과를 보여줍니다 파이썬은 문자열 구분 기호로 작은 따옴표 나 큰 따옴표를 사용합니다.) :
>>> '{0}, {1}, {2}'.format('a', 'b', 'c')
'a, b, c'
>>> '{}, {}, {}'.format('a', 'b', 'c') # 3.1+ only
'a, b, c'
>>> '{2}, {1}, {0}'.format('a', 'b', 'c')
'c, b, a'
>>> '{0}{1}{0}'.format('abra', 'cad') # arguments' indices can be repeated
'abracadabra'
I (숫자 인덱스 대신) 명명 된 자리 표시자를 사용하여 파이썬 포맷을 사용하고 싶습니다. 파이썬에서 매핑이 map<string, some_type>
유형 인 경우 str.format_map(mapping) 문자열 방법이 사용됩니다. 말, my_dictionary
에 포함 된 매핑과 같은 :
"name" --> "Guido"
"country" --> "Netherlands"
아래 같은 template
문자열을 갖는, 나는 result
...
wxString template("{name} was born in {country}.");
wxString result(format_map(s, my_dictionary));
// the result should contain...
// "Guido was born in Netherlands."
은 당신이 할 수있는 모든 사용 가능한 C 또는 C++ 코드를 알고 계십니까 좀하고 싶습니다 , 또는 나는 나 자신을 써야합니까? 시간과 경험을
감사합니다,
페트르
boost :: format은 python 형식 함수와 같습니다. http://liveworkspace.org/code/1zVEyV$0 – ForEveR
글쎄, 이것은 비슷합니다 - 더 오래된 파이썬 방식과 비슷합니다. 파이썬 3 이상의 새로운 마커는 약간 다릅니다. 하지만 어쨌든 힌트 (+1)에 감사드립니다. – pepr