신규 블로그를 만들었습니다!
strlen() 함수
strlen() 함수는 string length로 문자열의 길이를 반환해주는 함수이다.
#include <stdio.h>
int main(void) {
char arr1[20] = { "Hello World!" };
char arr2[20] = { "hi" };
// strlen(배열) => 배열의 길이
printf("arr1의 길이 = %d\n", strlen(arr1));
printf("arr2의 길이 = %d\n", strlen(arr2));
return 0;
}
여기서 한가지 주의 할 것을 문자열의 끝을 알려주는 공백문자는 길이의 개수로 취급하지 않고 반환한다.
arr2 배열을 보더라도 알 수 있다.
strcpy()와 strncpy()
strcpy(a, b) : b문자열을 a에 복사
strncpy(a, b, n) : b문자열을 a에 n길이만큼 복사
#include <stdio.h>
int main(void) {
char arr1[20] = { "Hello World!" };
char arr2[20];
char arr3[20];
char arr4[20];
strcpy(arr2, arr1); // 복사
printf("strcpy() arr2 = %s\n\n", arr2);
// +1을 해주는 이유는 공백 문자까지 넣기 위해서
strncpy(arr3, arr1, strlen(arr1)+1);
printf("strncpy() arr3 = %s\n\n", arr3);
// +1을 안해주고 공백문자를 안넣게 되면 쓰레기값이 같이 출력된다.
strncpy(arr4, arr1, strlen(arr1));
printf("공백문자 안넣은 strncpy() arr4 = %s\n\n", arr4);
return 0;
}
위 결과를 보면 알 수 있듯이 arr4에 끝에 이상한 값(한자)이 같이 출력되는 것을 알 수 있다.
이러한 쓰레기 값이 나오지 않게 하기 위해,
strncpy()를 사용할때는 공백문자도 같이 복사를 해줘야 한다.
관련 글
2018/02/09 - [Language/C] - C언어 :: gets(), puts() 함수 사용법 #19
2018/02/09 - [Language/C] - C언어 :: strchr(), strstr(), strupr(), strlwr() 함수 사용법 #21
'Language > C&C++' 카테고리의 다른 글
C언어 :: 파일입출력 사용법 #22 (0) | 2018.02.09 |
---|---|
C언어 :: strchr(), strstr(), strupr(), strlwr() 함수 사용법 #21 (0) | 2018.02.09 |
C언어 :: gets(), puts() 함수 사용법 #19 (0) | 2018.02.09 |
C언어 :: 공용체 (union) #18 (0) | 2018.02.07 |
C언어 :: 구조체와 배열, 구조체와 포인터 (-> 사용법) #17 (0) | 2018.02.07 |
최근댓글