char 의 장점 : 메모리공간이 크다.(차지하는 메모리가 작다)
char 의 단점 : 한번에 복사가 안된다.(s = char형,s2 = char형 이라할때, s = s2 이 명령어가 안됨)
string 의 장점 : 한번에 복사가 된다.(s = string형,s2 = string형 이라할때, s = s2 이 명령어가 됨)
string 의 장점2 : s라는 배열이 string이라면, s의 배열크기(명령어 s.length())(지금까지 저장한 문자의 갯수(만약 띄엄 띄엄 저장하시면 안될수도 있어요.) )등등 있습니다. 그리고 정렬을 할때는 sort(s.begin(),s.end()) 이렇게 쓸수도 있습니다.
string 의 단점 : 메모리공간이 크다.(차지하는 메모리가 작다)
틀린예 :
int main()
{
char a[10005],b[10005];
scanf("%s",&a);
a = b; //(에러남)
}
맞는예 :
int main()
{
string a,b;
scanf("%s",&a);
a = b; //(에러안남)
}
저의 평가 : 만약 문제를 푸실때 메모리제한이 크시면 string 쓰셔도 됩니다.
하지만 string배열을 100만 넘게 잡으시면 메모리 초과가 날수도 있습니다.
답변 주신 분들 너무너무 감사드립니다!!!
댓글을 작성하려면 로그인해야 합니다.
djswpsk1024 6년 전
C만 배우고 C++은 제대로 배워본 적 없지만, 여기저기 공부해가면서 하고 있습니다.
정말 누구든지 미개한 저에게 도움을 주셨으면 좋겠습니다.
지금 너무 궁금한게 char배열과 string의 차이? 입니다.
현재 개인적으로 면접 책에서 자바 언어로 쓰여진 문제를 푸는 중에 한 가지 문제에 직면했습니다.
문자열 하나를 입력 받고 이것을 우선적으로 알파벳 순서대로 정렬하고 싶은데, string은 혹시 자체요소 변경불가능인가요?
하려면 char배열을 결국 사용해야 하는건가요? 이러한 문자열 하나를 입력받고 그 안의 문자들을 정렬할 때에 <algorithm>은 사용할 수 없는건가요?
또 궁금한게, 보통 문자열 관련 문제를 해결할 때, char를 주로 사용하시나요? 아니면 string을 주로 사용하시나요?
char배열을 활용하는건 C++스럽지 못하고, C스럽다? 라는 글을 본 이후로 먼가... 좀 쓰는데 찝찝하네요... ㅠㅠㅠㅠ
질문이 알아보기 힘들지만 도와주세요... ㅠㅠㅠ 조언 부탁드립니다...