-
[C,C++] 문자열 함수(strcpy, strncpy, strlen, strcat, strncat, strcmp, strncmp)ETC/[C, C++] 2022. 4. 22. 22:03반응형
strcpy()
#include <string.h> char str1[20]="watermelon"; char str2[20]="orange"; char *sp1="melon"; char *sp2=str2; printf("%s\n",str1); //strawberry strcpy(str1,"orange");//첫번째: 저장할 위치, 두번째: 복사할 문자열의 위치 strcpy(str1,str2);//orange strcpy(str1,sp1);//melon strcpy(str1,sp2);//orange strcpy(sp2,sp1);//melon printf("%s\n", strcpy(str1, "orange")); //orange
strcpy() 두 번째 인자에 문자열을 넣어줘도 어차피 첫 번째 문자의 주소로 바뀌니까 문자열을 줘도 된다.
편하게 생각하면 들어갈 값이다.. 라고 생각해도 무방하다.
strcpy() 원형이 char * strcpy(char *dp, const char * sp) 이런 식으로 가기 때문에
복사가 끝난 배열의 주소값을 반환한다.
strncpy()
바꿀 때 마지막에 NULL문자를 붙이지 않아서 문자열의 일부만 수정 가능하다.
char str[20]="apple tree"; strcpy(str,"mango");//mango strncpy(str,"strawberry-pie",5)//straw tree
strncpy(저장할 위치, 저장할 문자열의 위치, 저장할 문자 열중에서 이 정도 크기만큼만 가져오겠다.)
strcat() strncat()
바꿀 배열의 NULL문자를 찾아서 NULL문자에서 붙어 문자열을 붙인다.
붙여 넣어질 충분한 공간이 확보되어야 한다.
strncat은 붙여 넣을 문자열 앞에서 숫자만큼만 붙인다.
char str[20]="strawberry"; strcat(str,"pie");//strawberrypie strncat(str,"piece",3)//strawberrypie
strlen()
배열에서 문자열의 길이(NULL문자 전까지)
char str[20]; int len; scanf("%s",str);//apple len=strlen(str); printf("%d\n",sizeof(str));//20 printf("%d\n",len);//5
strcmp() strncmp()
첫 번째 문자의 아스키코드 값이 연산됨. 첫 번째가 같으면 두 번째, 세 번째,...
아스키코드 값이 크다는 것은 사전에 더 뒤에 나온다는 뜻이다.(소문자, 대문자는 예외, 소문자가 대문자보다 아스키코드값이 작음 ex. apple> Banana )
strncmp는 앞에서 숫자만큼만 비교하는 함수이다.
char str1[20]="boy"; char str2[20]="beer"; strcmp(str1,str2);//1 strncmp(str1,str2,1);//0
str1> str2 1
str1 <str2 -1
str1==str2 0
stcpy 함수는 char에 문자열 복사
strncpy 함수는 문자열 일부 복사
strlen 함수는 char 배열 문자열 길이 출력
strcat 함수는 문자열 뒤에 붙이기
strncat 함수는 문자열 일부만 붙이기
strcmp 함수는 문자열 비교
strncmp 함수는 문자열 일부 비교반응형'ETC > [C, C++]' 카테고리의 다른 글
[C,C++] 포인터 배열 (0) 2022.04.30 [C,C++] C에서 함수의 데이터 전달 방법(Call-by-Value, Call-by-Reference) (0) 2022.04.25 [C,C++] 변수의 종류(지역, 전역, 정적 ,레지스터) (0) 2022.04.24 [C,C++] 문자열과 포인터 (0) 2022.04.22 Hello World! (0) 2022.04.22