[C언어] strlen, strcpy, strncpy, strcat, strncat, strcmp, strncmp

1. strlen 함수


문자열의 길이를 반환해 주는 함수이다. NULL 문자는 문자열 길이에 포함되지 않는다.




2. strcpy 함수


문자열을 복사. BUT. 저장할 버퍼가 입력받은 문자열 길이보다 작으면 오버플로우 발생.

따라서 strncpy함수를 선호한다.


3. strncpy 함수


최대 길이 n을 넘지 않고 문자열을 복사한다.


strncpy로 NULL문자를 뺀 길이까지만 복사하고, 맨 뒤에 '\0'(NULL) 을 넣어준다.



4. strcat 함수, strncat 함수

기존에 존재하는 문자열의 뒤에다가 다른 문자열을 추가하는(덧붙이는) 함수이다.
역시나 strcat은  문자열이 저장될 배열의 공간이 추가하는 문자열의 길이에 비해 충분하지 못한 경우 오버플로우 발생.

strncat함수를 쓰자.



5. strcmp 함수, strncmp함수


문자열의 길이를 비교하는 것 X. 문자열 내용 자체를 비교 O.




위에 예제는 str1 == str2 (배열 이름 = 포인터) 이므로 포인터를 비교한 것임.

 



strcmp 함수예제


strncmp함수는 처음부터 n까지 비교하는 함수이다.