2011-09-09 8 views
-1

가능한 중복 :이 메도[]는 char하는 문자열을 변환하는 방법

for (int anrede=0;!user1.eof();anrede++){ 
    if (anrede==1){ 
     getline(user1, inhalt_anrede);  
    } 
} 

와 TXT 데이터로부터 라인을 가지고
Convert std::string to const char* or char*

지금 inhalt_anredechar[5] anrede으로 변환해야합니다. 다른 부분에서는 anrede을 사용했습니다. 프로그램.

그래서 txt 데이터는 save-data처럼 작동합니다.

나는 아직도 배우기 때문에 부드러워 라. D.

btw : 아니요. 다른 사람이 저에게서 다른 질문에 대해 말하는 것처럼 숙제가 아닙니다. 나는 독일과 독일에서 C++ @ 학교가 없습니다. 심지어 자바 또는 델파이. ur 운 좋은 u는 HTML을 배우면, 그게 전부 야.

+2

http://stackoverflow.com/questions/347949/convert-stdstring-to-const-char-or-char –

+0

inhalt_anrede.c_str()? – quasiverse

답변

2
std::string str("abc"); 
char cstr[5]; 
strcpy(cstr, str.c_str()); 

보면 (이 예에서는 단지 4 문자 + NULL을 포함 할 수 있음) C 문자열을 오버 플로우하지 않도록해야합니다.

+1

str이 4자를 넘을 수 있으면 strncpy()를 사용하는 것이 좋습니다. –

0

문자열에 char*을 반환하는 c_str() 메서드가 있습니다. char [5]가 필요하면 문자열의 처음 5 문자를 1로 복사하십시오.

char strArr[5]; 
for (int i = 0; i < 5 && i < inhalt_anrede.length(); ++i) { 
    strArr[i] = inhalt_anrede[i]; 
} 

strArr는 반드시 '\0' 지금 종료 있음을 유의하십시오.

0

사용 std::stringmemcpyc_str() 회원 : 당신이 당신의 for 루프로 카운터 이미 anrede라는 변수를 사용

char anrede[5]; 
if (anrede.size() >= 5) 
    memcpy(anrede, inhalt_anrede.c_str(), 5); 
else 
    throw "string is too short"; 

주의!

관련 문제