이 질문C++ - 수 std의 char *로 변환하는 방법 :: 목록 <char>
수 std :: 목록을 널 종료 문자의 * 변환 할 수있는 방법이 있다면 난 그냥 궁금 해서요의 초보자 유형입니다. 그것은 std::string
은 STL 컨테이너와 호환되는 인터페이스를 가지고 있다는 사실을 이용
#include <list>
#include <string>
int main()
{
char const* data = "Hello world";
std::list<char> l(data, data + strlen(data));
}
:
이 아마 가장 간단한 방법입니다 당신char* data = ...
std::list<char> clist = convert_chars2list(data);
...
convert_chars2list(char* somedata)
{
//convert
}
덕분에 잘 작동 많은 (즉, 그것이
\0
로 끝을 의미). –'l.push_back (* somedata ++);':이 정의되지 않은 동작이 아닙니까? 'operator ++'의 부작용은'operator *'의 인수를 평가하기 전에 순차 화되지 않습니까? 아니면 혼란 스럽습니까? –
@NikBougalis : 나는이 간단한 물건으로도 항상 혼란스러워한다 : 그래서 그것은 * (somedata ++) 또는 ((* somedata) ++)인가? 첫 번째 경우에 나는 UB라고 믿는다. 왜냐하면'++ '의 부작용은'*'의 값 계산에 순차적이지 않기 때문이다. 나는 믿는다 ... –