Dailelog

C_string_strlen 본문

언어/C언어

C_string_strlen

Daile 2022. 4. 25. 19:02

오늘은 문자열 함수 중 srtlen()를 공부하고 직접 strlen를 구현해 보았다. 

#include <stdio.h>
#include <string.h>

int my_strlen(char *s)
{
     int n;

     for(n = 0; *s != '\0'; s++)
     {
         n++;
     }
      return n;

}



main()
{
       char x[10];//= {'k','i','m','\0'};
       int n;
       int i;
      
       /*
       x[0] = 'k'; //''를 사용하는 이유는 문자 상수 이기 떄문에 실제로는 아스키 코드 값이라고 생각하면 됨
       x[1] = 'i';
       x[2] = 'm';
       x[3] = '\0';// \0은 나머지 문자열 자리에 NULL 캐릭터 값을 넣는 역활을 한다.
       */
       //사용하지 않는다면 쓰레기 값이 들어가게 된다.
       for(i = 0; i <5; i ++)
       {
             scanf("%s",x);
             //n = strlen(x); //문자열의 크기를 나타내는 함수 논리적 크기만 포함 \0은 포함하지 않는다.
             n = my_strlen(x);
             printf("length of %s is %d\n",x,n);
       }
}

char x[10] = "kim"; 에서 문자열 상수"kim"은 4bety이다.여기서 3bety가 아닌 이유는 \0이 생략 되어 있기 때문이다. 이와 같은 예로 'a'와 "a" 는 서로 다르다. 'a'는 아스키 코드 값이고 "a"는 문자열을 의미한다.

\0은 문자열 속에서 뒤에 빈 공간에 NULL을 넣는다. 

 

strlen()를 이해 했듯이 앞으로 나오는 함수들도 이해하려고 노력할것이다.

 

LIST

'언어 > C언어' 카테고리의 다른 글

C_string_strcpy  (0) 2022.04.27
C_포인터 사용 목적  (1) 2022.04.26
C_2차원 배열_ 함수 이용(2 Dimensional Array)  (0) 2022.04.22
selection sort  (0) 2022.04.13
C_포인터_swap  (0) 2022.04.12