문자열의 처리

 

char* fruit = "apple";    //문자열 상수"apple"을 포인터변수에 대입

 

/* --------------------------------------------

for(int i=0;i<sizeof(fruit);i++){

printf("%s", fruit[i]);              //결과 : apple

}

--------------------------------------------*/

/* -------------------------------------------------------------------------------

fruit[0] = 'a'

fruit[1] = 'p'

fruit[2] = 'p'

fruit[3] = 'l'

fruit[4] = 'e'

--------------------------------------------------------------------------------*/

 

while(*fruit != \0){             //*fruit은 포인터변수 fruit(주소값)을 참조. 즉, apple과 같음

printf("%s\n", fruit);    //fruit에 저장된 값을 문자형으로 출력

fruit++;                       //주솟값을 1 증가

}

따라서 결과는

apple

pple

ple

le

e 

 

 

 

중요한 문자열 처리 함수

 

문자배열에 문자열상수를 저장하기

 

 

void user_strcpy(char* des, char* src)        //des : 선언한 배열 대입 & src : 저장할 문자열 상수 대입

{

while(*src != '\0'){                          

*des = *src;                                //선언한 배열 자리에 저장할 문자열요소 대입

src++;                                        //주소값 1씩 증가

des++;                                       //주소값 1씩 증가

}

*des='\0;                                       //마지막 자리 NULL값 대입

}

이 함수를 사용한다.

 

 

 

문자열 복사함수

 

"string.h"헤더파일에 선언되어있는 char* strcpy(char* , char* ) 함수를 사용한다.

 

...

#include<string.h>          //선언

...

char str1[20] = "apple";

char str2[20] = "banana";

char temp[20];                //임시 저장 배열 선언

 

strcpy(temp, str1);          //temp에 str1 저장

strcpy(str1, str2);           //str1에 str2 저장

strcpy(str2, temp);         //str2에 temp(원래 str1) 저장 

 

 

 

문자열의 길이를 계산하는 함수

 

unsigned int strlen(char* ) 함수를 사용한다.

 

char fruit[80] = "apple";

int len;

len = strlen(fruit);

printf("%d", len);                //5

printf("%d", sizeof(fruit));    //80

 

 

 

문자열을 비교하는 함수

 

"string.h"헤더파일에 선언되어 있는 int strcmp(char* str1, char* str2) 함수를 사용한다.

 

크기비교 

str1 > str2

str1 < str2

str1 == str2

리턴값

1

-1

0

 

...

#include<string.h>          //선언

... 

char str1[20] = "banana";

char str2[20] = "apple"; 

char temp[20];                    //임시 저장 배열 선언

int res;

 

res=strcmp(str1, str2);

if(res>0){                          //str1 > str2인 경우

strcmp(temp, str1);       //temp에 str1 저장

strcmp(str1, str2);        //str1에 str2 저장

strcmp(str2, str1);        //str2에 temp(원래 str1) 저장 

}

 

 

 

두 개의 문자열을 붙이는 함수

 

"string.h"헤더파일에 선언되어 있는 char* strcat(char* str1, char* str2)함수를 사용한다.

 

...

#include<string.h>          //선언

... 

char fruit[80] = "straw";

 

strcat(fruit, "berry"); 

 

 

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

C언어 정리(7)  (0) 2015.08.07
C언어 정리(6)  (0) 2015.08.06
C언어 정리(4)  (0) 2015.07.20
C언어 정리(3)  (0) 2015.07.20
C언어 정리(2)  (0) 2015.07.20

+ Recent posts