질문 드립니다
188
6 asked
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
#define SIZE 20
using namespace std;
int main() {
char animal[SIZE];
char* ps;
cout << "동물 이름을 입력하십시오.\n";
cin >> animal;
ps = new char[strlen(animal) +1];
strcpy(ps, animal);
cout << "입력하신 동물 이름을 복사하였습니다." << endl;
cout << "입력하신 동물 이름은 " << animal << "이고, 그 주소는 " << (int*)animal << " 입니다." << endl;
cout << "복사된 동물 이름은 " << ps << "이고, 그 주소는 " << (int*)ps << " 입니다." << endl;
delete[] ps;
return 0;
}이제는 #include <cstring> 을 추가해야만 작성해주신 코드가 동작하는게 보여지는데 헤더가 기본적으로 가지고 있는 내용이 시간이 지나면서 바뀐걸까요? 아니면 C++ 업데이트를 제가 잘못한건가요?
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다.
질문해주신 내용과 매우 유사한 현상에 대해 설명하는 정보가 있는 것 같아 소개해드립니다. 여러분의 질문은 cstring 헤더와 관련된 C++ 표준 라이브러리의 사용에 관한 것으로 보입니다. 특히, C++에서 문자열을 다루기 위해서 cstring 헤더 파일을 포함시켜야 하는 경우와 이 헤더 파일이 포함하는 함수들(strcpy, strlen 등)에 관한 내용이 주요 관심사인 것으로 보입니다.
이와 관련하여, 이전에 파가니님께서도 유사한 문제에 대해 질문하셨고, 이에 대한 답변이 있었습니다: delete 연산자 관련하여에서는 strcpy와 strlen을 사용하기 위해 cstring이 필요한 상황에 대해 언급되었습니다.
C++ 표준과 관련해, 특정 헤더 파일이 필요한 이유는 cstring과 같은 헤더가 C++ 표준 라이브러리에 포함된 특정 기능(이 경우 문자열 처리 기능)을 제공하기 때문입니다. C++ 표준은 시간이 지나면서 바뀔 수 있으며, 다양한 컴파일러(예: GCC, Clang, MSVC 등)는 이러한 표준을 다른 시점에 업데이트할 수 있기 때문에, 특정 헤더 파일의 필요성이 표준의 개정이나 컴파일러의 업데이트에 따라 달라질 수 있습니다.
단, cstring 헤더가 반드시 포함되어야 하는 상황이 지금과 과거 사이에 변경되었는지는 표준 문서의 구체적인 업데이트 내용이나 컴파일러의 변경사항을 확인해야 확실하게 알 수 있습니다. 기본적으로, C++에서 C 스타일의 문자열을 다루기 위해서는 cstring을 포함하는 것이 요구되는 것은 일반적입니다. 컴파일러 업데이트가 잘못 되었는지는 특정 업데이트 내역이나 변경사항을 통해 확인해보아야 합니다.
질문자님께서 직면하고 있는 구체적인 상황에 대해 더 자세한 정보가 필요하다면, 특정 C++ 표준 문서를 참고하거나 사용하고 계신 컴파일러의 최신 정보 및 업데이트 내역을 확인해보시는 것이 좋을 것 같습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
switch 구문과 break continue 구문 강의 질문드립니다
0
56
1
opreator*
0
75
1
cin은 c언어에서의 scanf와 동일하다고 봐도 될까요?
0
140
0
질문이 있습니다.
0
108
1
temp1 선언
0
91
1
const MyStruct& 사용
0
114
0
인트형 포인터의 사이즈가 8이 나옵니다.
0
217
1
MyStruct* temp = new MyStruct; 에서 temp도 delete를 해야하나요?
0
127
1
#include <iostream> 중복
0
155
1
int sum=sumArr(arr. SIZE) 문의
0
137
1
4:04질문입니다.
0
111
1
4:39 질문입니다.
0
129
1
질문있습니다.
0
105
1
질문있습니다.
0
107
1
9:11 b에는 a이 주소값이 들어갔다고 하는데 *b의 값이 왜 a랑 같은 값이 나오나요?
0
160
1
빌드 실패 오류 질문 드립니다!
0
393
1
추상화와 클래스중 질문
0
175
1
질문사항 있습니다..동작을 안하고 있어요..
0
339
2
함수와 구조체 강의 음성이 이상합니다.
0
200
1
분할 컴파일 과정에서의 오류 발생
0
604
2
<<, >> 비트 연산자에 대한 설명이 맞나요?
0
450
2
포인터 연산
0
390
2
비주얼 스튜디오 코드를 사용해도 되나요?
0
803
1
[정수형 자료형과 실수형 자료형] int보다 long이 더 크다고 했는데 왜 같은 값으로 나오는 건가요?
0
665
1

