size_t strlen(const char *str)
- 문자열의 길이를 반환한다. 이때 문자열의 마지막인 '/0'(null character)을 포함하지 않는다
- <string.h>에 포함되어 있다.
size_t sizeof(const char *str)
- 할당 된 버퍼의 크기를 반환한다.
-<stdio.h>에 포함되어 있다.
- #include <stdio.h>
- #include <string.h>
- int main()
- {
- char str[] = "Hello World!";
- printf("strlen() :%d\n",strlen(str));
- printf("sizeof() :%d\n", sizeof(str));
- return 0;
- }
결과는 아래와 같다. sizeof()가 13인것은 문자열의 끝인 '/0'을 포함한 버퍼의 크기이기 때문이다.
strlen() :12
sizeof() :13
--------------------------------
Process exited after 0.00496 seconds with return value 0
계속하려면 아무 키나 누르십시오 . . .
한가지 더!
strlen( )의 시간 복잡도는 이므로 다음과 같은 코드는 의 시간 복잡도를 가지게 된다.
- #include <stdio.h>
- #include <string.h>
- int main()
- {
- int i;
- char str[] = "This is test!";
- for (i = 0; i < strlen(str); i++)
- //Do something..
- return 0;
- }
따라서 다음과 같이 사용하는 것이 좋겠다.
- #include <stdio.h>
- #include <string.h>
- int main()
- {
- int i,len;
- char str[] = "This is test!";
- len = srtlen(str);
- for (i = 0; i < len; i++)
- //Do something..
- return 0;
- }
'Linux > C' 카테고리의 다른 글
[c] size_t의 포멧형식 (0) | 2018.01.31 |
---|---|
[c] gets( ) vs scanf( ) (0) | 2018.01.31 |