본문 바로가기
반응형

C언어/문자열13

[C언어] 문자열을 비교하여 순서를 알려주는 함수 (strcmp) 아래와 같은 두개의 문자열 배열이 있다고 합시다. char s1[30]="apple"; char s2[30]="bpple"; 두 문자열의 사전 순서를 알고 싶습니다. 이런 경우 strcmp 함수를 사용하면 됩니다. strcmp 함수는 string.h 헤더를 include 해줘야 사용할 수 있습니다. strcmp 함수는 아래와 같은 형식으로 사용합니다. strcmp(s1,s2) s1이 s2보다 사전에서 앞에 나올 경우 -1을, 뒤에 나올 경우 1을, 같을 경우 0을 반환합니다. apple이 bpple 보다 사전 순서로 앞이므로 -1이 반환될 것입니다. 주의할 점은 아스키코드를 비교하는 것이라는 것입니다. 대문자와 소문자 비교시 대문자가 소문자보다 순서상 앞에 있습니다. 아래 코드를 통해 확인해봅시다. #i.. 2022. 7. 22.
[C언어] 문자열 길이 계산 (strlen) 아래와 같은 문자열 배열이 있다고 합시다. char my_str[30]="hello world" 위 문자열의 길이를 알고 싶다면 strlen 함수를 사용하면 됩니다. strlen 함수는 string.h 헤더를 include 해줘야 사용할 수 있습니다. strncat 함수는 아래와 같은 형식으로 사용합니다. strncat(my_str) my_str 이라는 문자열의 길이를 반환합니다. 아래 코드를 통해 확인해봅시다. #include #include int main() { char my_str[30]="hello world"; int len; len=strlen(my_str); printf("%d",len); } 2022. 7. 22.
[C언어] 문자열 뒤에 원하는 문자열 이어붙이기 (strncat) 아래와 같은 문자열 배열이 있다고 합시다. char my_str[30]="hello" 이 문장뒤에 " world" 에서 " wo" 까지만 붙이고 싶다면 strncat 함수를 사용하면 됩니다. strncat 함수는 string.h 헤더를 include 해줘야 사용할 수 있습니다. strncat 함수는 아래와 같은 형식으로 사용합니다. strncat(my_str," world",3) my_str 이라는 문자열 뒤에 " world" 라는 문자열에서 문자 3개만 이어붙이겠다는 의미입니다. 아래 코드를 통해 확인해봅시다. 배열의 길이는 넉넉히 설정해주어야 합니다. #include #include int main() { char my_str[30]="hello"; strncat(my_str," world",3); .. 2022. 7. 22.
[C언어] 문자열 뒤에 원하는 문자열 이어붙이기 (strcat) 아래와 같은 문자열 배열이 있다고 합시다. char my_str[30]="hello"; 이 문장뒤에 " world"를 붙이고 싶다면 strcat 함수를 사용하면 됩니다. strcat 함수는 string.h 헤더를 include 해줘야 사용할 수 있습니다. strcat 함수는 아래와 같은 형식으로 사용합니다. strcat(my_str," world") my_str 이라는 문자열 뒤에 " world" 라는 문자열을 이어붙이겠다는 뜻입니다. 아래 코드를 통해 확인해봅시다. 배열의 길이는 넉넉히 설정해주어야 합니다. #include #include int main() { char my_str[30]="hello"; strcat(my_str," world"); printf("%s",my_str); } 2022. 7. 22.
[C언어] 문자열에서 원하는 개수 복사 (strncpy) 아래와 같은 문자열이 있다고 합시다. "hello world" 이 문장에서 hello 만 복사해 오고 싶다면 strncpy 함수를 사용하면 됩니다. strncpy 함수는 string.h 헤더를 include 해줘야 사용할 수 있습니다. strncpy 함수는 아래와 같은 형식으로 사용합니다. strncpy(my_str,"hello world",5) "hello world" 라는 문장에서 5개 문자를 my_str 이라는 배열에 복사하겠다 라는 뜻입니다. 위 코드가 실행되면 my_str 이라는 배열에 "hello"가 입력됩니다. 당연히 먼저 my_str 이라는 배열을 정의해주어야 합니다. 아래 코드를 통해 확인해봅시다. #include #include int main() { char my_str[6]; str.. 2022. 7. 22.
[C언어] 문자열 변수 변경하는 방법 (strcpy) 숫자형 변수는 아래와 같이 다른 값을 대입하여 변수에 입력된 값을 변경할 수 있습니다. #include int main() { int num=5; printf("%d \n",num); num=10; printf("%d",num); return 0; } 반면 문자열은 아래와 같이 변경을 시도할 경우 오류가 발생합니다. #include int main() { char str[10]="hi"; printf("%s \n",str); str[10]="hello"; printf("%s",str); return 0; } 이때는 strcpy 함수를 사용합니다. 위 예시를 아래와 같이 변형하면 됩니다. strcpy 함수를 사용하려면 string.h 를 include 해야합니다. #include #include int m.. 2022. 7. 14.
[C언어] 포인터 배열을 이용한 문자열 정의 포인터 배열을 이용하면 여러개의 문자열을 쉽게 정의할 수 있습니다. 아래와 같습니다. char * parr[3]={"hi","hello","world"} 문자열이 주소값을 반환하기 때문에 가능한 정의입니다. 2022. 7. 5.
[C언어] 포인터를 이용한 문자열 정의 문자열은 보통 배열을 이용하여 정의하는데, 포인터를 이용하여 정의할 수도 있습니다. 아래와 같이 정의합니다. char * mystr = "Hello World" 이때 mystr 에는 H가 저장된 곳의 주소가 저장됩니다. 아래와 같이 출력하면 주소가 출력됩니다. printf("%p",mystr); Hello World 를 출력하려면 어떻게해야 할까요? 아래와 같이 하면될까요? printf("%s",*mystr); 안됩니다. *mystr 는 H만을 가리킵니다. 따라서 %c로 출력하면 H가 출력됩니다. Hello World 를 출력하려면 아래와 같이 하면 됩니다. printf("%s",mystr); 위와 같이 하면 H주소에 접근해서 널문자가 나올때 까지 문자열을 출력합니다. 2022. 7. 1.
C언어 문자열 정의하면 길이가 하나 늘어나는 이유 (널문자) 문자열을 정의하면 길이가 하나 늘어납니다. 아래와 같이 abcde 를 정의하고 길이를 출력하면 6이 나옵니다. #include int main() { char str[]="abcde"; printf("정의한 문자열은 %s 입니다. \n",str); printf("정의한 문자열 길이는 %ld 입니다.",sizeof(str)); } 이유는 문자열 마지막에 널문자 \0이 자동으로 추가되기 때문입니다. 널문자는 문자열의 끝을 컴퓨터에게 알려주기 위해서 생성됩니다. 2022. 6. 22.
C언어 문자와 문자열 정의하기 문자 문자 하나를 정의할 때는 char 자료형을 사용하면 됩니다. 아래와 같습니다. 문자에는 작은따옴표를 사용합니다. #include int main() { char ch1='a'; printf("정의한 문자는 %c 입니다.",ch1); } 문자열 문자열 정의에는 배열이 사용됩니다. 큰 따옴표를 사용합니다. 문자열을 { } 로 정의할 때는 마지막에 널문자를 넣어줘야 합니다. #include int main() { char mystr1[]="hi hello"; char mystr2[]={'h','i',' ','h','e','l','l','o','\0'}; printf("정의한 문자열은는 %s 입니다. \n",mystr1); printf("정의한 문자열은는 %s 입니다.",mystr2); } 2022. 6. 22.
[C언어] 문자열의 끝을 나타내는 널문자 문자열에서는 널문자 '\0' 를 문자열의 끝으로 인식합니다. 널문자의 아스키코드가 0이므로 0을 입력해도 결과는 같습니다. 아래는 예시입니다. int main(void) { char str[10]="abcdefgh"; printf("%s\n",str); str[4]=0; printf("%s\n",str); } 다섯번째 자리에 널문자를 넣었더니, 네번째 자리 까지만 문자열로 인식합니다. 2022. 3. 30.
[C언어] 문자출력 vs 문자열출력 문자는 %c 서식문자를 이용하여 출력하고, 문자열은 %s 서식문자를 이용하여 출력한다. #include int main() { char word='h'; char* string="hi hello"; printf("문자 : %c \n",word); printf("문자열 : %s",string); } 아래는 결과입니다. 2022. 3. 8.
[C언어] 문자와 문자열 출력해보기 아래는 문자와 문자열을 출력하는 예시입니다. 문자열은 서식문자 %s 를 사용합니다. #include int main() { char ch1='A'; char* ch2="ABCDEF"; printf("문자 : %c \n문자열 : %s",ch1,ch2); } 2022. 3. 2.
반응형