개인노트
[C언어] 문자열의 길이를 반환하는 strlen 함수 본문
▶ 함수 strlen ◀
함수 strlen는 문자열의 길이를 반환해주는 함수이며, 헤더파일 string.h에 선언되어 있다.
strlen의 반환형은 size_t인데 size_t는 typedef unsigned int size_t; 이렇게 선언되어 있다.
이는 unsigned int 의 선언을 size_t로 대신할 수 있다는 의미이다.
즉, size_t len; == unsigned int len;
#include <string.h> size_t strlen(const char * s); → 널 문자를 길이에서 제외한 값을 반환한다!! |
[ 예제 1]
fgets 함수로 입력을 받을 때 \n값이 문자열에 포함이 되는 것을 제외시켜보자.
밑의 그림에서 \n를 삭제하지 않은 문자열은 개행이 3번 이루어 졌고, \n를 삭제한 문자열은 개행이 1번만 이루어 졌다.
#include <stdio.h> #include <string.h> void cpstrlen(char a[]); int main(void) { char name[100], name2[]="tistory"; fgets(name, sizeof(name), stdin); printf("길이 %d, 내용 %s\n", strlen(name2), name2); // fgets 함수로 입력하지 않아서 \n값이 없다. printf("길이 %d, 내용 %s\n", strlen(name), name); // 길이에 \n값 포함 cpstrlen(name); printf("길이 %d, 내용 %s\n", strlen(name), name); // 길이에 \n값 미포함 } void cpstrlen(char name[]) { int len = strlen(name); name[len - 1] = 0; // 문자열의 맨 뒤에 '\n'가 위치하고 있다. 그 값을 0으로 바꿔준다. } |
'C > 문법' 카테고리의 다른 글
[C언어] strcat_s, strncat_s 함수 - 문자열을 붙이는 함수 (0) | 2017.07.14 |
---|---|
[C언어] strcpy_s, strncpy_s 함수 - 문자열 복사 함수 (0) | 2017.07.14 |
[C언어] 표준 입출력 & 버퍼 (0) | 2017.07.14 |
[C언어] 문자열 단위의 입출력 함수 (0) | 2017.07.14 |
[C언어] 문자 단위의 입출력 함수, EOF (0) | 2017.07.13 |