티스토리 뷰

Test/C

문자배열

kiostory 2017. 3. 26. 21:44

* 문자배열


- 연속된 문자들의 모임

- 문자는 작은 따옴표'', 문자열의 큰 따옴표"" 로 표현

- 문자열의 끝에는 문자열의 끝을 표시하는 널문자 ('\0')가 함께 보관됨


문자열 상수

- 값이 변경되지 않는 문자열



printf("%s", str);        ----> str 배열에 보관된 문자열을 출력함

printf(str);      ----> str 배열에 보관된 문자열을 출력함


char str[10] = "abcdefg";

str = "Hello";       -----> 컴파일 에러   -----> 문자열 처리 함수를 이용해야 함


-문자열 처리 함수

> strcpy 함수

문자열 복사를 위한 함수

복사할 대상과 원본에 대한 포인터를 이용하여 src에 있는 문자열을 dest에 복사


#include <string.h>

char *strcpy(char *desc, const char *src);

첫번째 매개변수에 전달된 주소값(dest에 전달된 값) 반환

널 문자를 만날 때까지 1:1로 복사함


ex)

#include<stdio.h>

#include<string.h>


int main(void)

{

char str1[20], str2[20];


strcpy(str1, "abcde");

printf("str1 = %s\n", str1);


strcpy(str2, str1);

printf("str2 = %s\n", str2);


return 0;

}


> 실행결과


str1 = abcde
str2 = abcde

--------------------------------


- 잘못된 문자열 복사의 예 :

> char str1[20]="abcdef";

   char str2[20];

   str2=str1;




> strlen 함수

문자열의 길이를 구하는 함수

문자열의 길이를 구하고자 할 때, strlen 함수를 이용하면 손쉽게 그 길이를 리턴받을 수 있음

원형을 보면 싸이즈를 알고자 하는 문자열에 대한 포인터만 이용하면 길이 정보를 반활받을 수 있도록 되어 있음


ex)

#include<string.h>

char str1[]="abcdef";

int len;

printf("문자열 길이 : %d\n", strlen(str1));     //문자열의 길이는 5

printf("문자열 길이 : %d\n", strlen("Hello World"));    //문자열의 길이는 11


> strcmp 함수

문자열을 비교하는 함수


ex)

if(strcmp(str1,"abcde")==0)

printf("두 문자열이 같습니다.\n");

else

printf("두 문자열이 다릅니다.\n");


잘못된 예)

char *str1="Software and hardware";

char *str2="Software and hardware";

if(str1==str2) { ... } ...

->  실제로 문자열을 가리키는 주소값을 비교하기 때문에 문자열 비교가 되지 않음


> strcat 함수

문자열 연결함수

기존 문자열에 새로운 문자열을 덧붙일수있도록 하는 함수


ex)

char str[20]="abcde";

printf("str=%s\n",str);

strcat(str,"12345");

printf("str=%s\n",str);

실행결과)

str=abcde
str=abcde12345

--------------------------------





'Test > C' 카테고리의 다른 글

배열과 함수 - 함수의 인자로 1차원 배열 전달  (0) 2017.03.27
2차원 배열  (0) 2017.03.27
배열  (0) 2017.03.26
문제  (0) 2017.03.14
함수(20170314)  (0) 2017.03.14
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함