개인노트

[C언어] 문자열의 길이를 반환하는 strlen 함수 본문

C/문법

[C언어] 문자열의 길이를 반환하는 strlen 함수

BillnairK 2017. 7. 14. 17:25

▶ 함수 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으로 바꿔준다.

}


Comments