c언어 strlen 함수 질문입니다.
글쓴이: hydrangeanroses / 작성시간: 목, 2021/09/30 - 8:30오전
#include
#include
using namespace std;
int main()
{
char arr[1000001];
fgets(arr, sizeof(arr) - 1, stdin); // "The Curious Case of Benjamin Button" 입력(35글자)
cout << strlen(arr) << endl; // 36 출력
arr[strlen(arr) - 1] = '\0'; // null 문자 삽입
cout << strlen(arr) << endl; // 35 출력
return 0;
}
처음에는 fgets함수(null문자 포함 x) 때문에 null문자가 없는데 길이가 왜 36인 것이며,
그 후에는 null 문자를 넣었는데 문자열의 길이가 35로 줄어드는 이유가 뭐죠???
Forums:
https://modoocode.com/38
https://modoocode.com/38
개행문자가 포함되므로 36개가 된 것이고, arr[strlen(arr) - 1] = '\0' 코드가 개행문자를 널문자로 덮어 썼으므로 35개로 줄어든 것이죠.
감사합니다! ㅎㅎ
제대로 이해가 갔어요~
kldp 에 소스코드는 code 태그 안에 넣어서
kldp 에 소스코드는 code 태그 안에 넣어서 제대로 보입니다.
코드를 보니 C 아니고 C++ 인 거 같은데요
세벌 https://sebuls.blogspot.kr/
코드는 c++이지만
fgets 함수는 c, c++ 상관없이 관련 있는 것이라 생각해 질문 올린겁니다~
댓글 달기