string 형 함수를 string
사용하여 C ++ 를 char 배열로 변환하는 것은 매우 간단합니다 . 그러나 반대 방법은 무엇입니까?c_str
strcpy
: 내가 좋아하는 문자 배열이 가지고 char arr[ ] = "This is a test";
에 변환 등을 할 :
string str = "This is a test
.
답변
이 string
클래스에는 NULL로 끝나는 C- 문자열을 취하는 생성자가 있습니다.
char arr[ ] = "This is a test";
string str(arr);
// You can also assign directly to a string.
str = "This is another string";
// or
str = arr;
답변
다른 해결책은 다음과 같습니다.
char arr[] = "mom";
std::cout << "hi " << std::string(arr);
추가 변수를 사용하지 않습니다.
답변
최고 투표 답변에서 누락 된 작은 문제가 있습니다. 즉, 문자형 배열은 0을 포함 할 수 있습니다. 위에서 지적한대로 단일 매개 변수와 함께 생성자를 사용하면 일부 데이터가 손실됩니다. 가능한 해결책은 다음과 같습니다.
cout << string("123\0 123") << endl;
cout << string("123\0 123", 8) << endl;
출력은 다음과 같습니다
123
123 123
답변
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
int main ()
{
char *tmp = (char *)malloc(128);
int n=sprintf(tmp, "Hello from Chile.");
string tmp_str = tmp;
cout << *tmp << " : is a char array beginning with " <<n <<" chars long\n" << endl;
cout << tmp_str << " : is a string with " <<n <<" chars long\n" << endl;
free(tmp);
return 0;
}
밖:
H : is a char array beginning with 17 chars long
Hello from Chile. :is a string with 17 chars long