C++ 문자열 처리 함수

2014.06.14 09:48

엘카 조회 수:412

참고 문서  
 문자열 처리 함수 
  • size_t strlen(const char *string); 
  • char *strcpy(char *strDestination, const char *strSource); 
  • char *strcat(char *strDestination, const char *strSource); 
  • int strcmp(const char *string1, const char *string2); 

  • strcpy(to, from)
     한 문자열을 다른 문자열에 복사해 준다. 배열의 경계를 검사하지 않는다. 

  • strcat(to, from)  
    문자열을 결합시켜 준다. 배열의 경계를 검사하지 않는다. 

  • strlen(str)  
    문자열의 길이. 즉, 문자 수를 반환한다. null 문자는 포함되지 않는다. 

  • strcmp(str1,str2)  
    두 문자열을 비교하여 다음 중 하나의 return value를 반환한다. 
    0   : str1, str2 두 문자열이 같다.
    양수 : str1이 str2 보다 크다. 
    음수 : str1이 str2 보다 작다. 

#include <stdio.h> 
#include <string.h> 
 
int main(void) 
{ 
 
   char str1[20]="king",str2[20]=""; 
   printf("배열의 크기:%d, 문자열의 길이: %d \n",  
                     sizeof(str1),strlen(str1)); 
   printf("str1 : %p, str2: %p \n", str1, str2); 
   printf("str1 : %s, str2: %s \n", str1, str2); 
 
   strcpy(str2,str1);  /* 문자열 복사 (str2 <-- str1) */ 
   printf("str1 : %s, str2: %s \n", str1, str2); 
 
   strcat(str1, "queen");  /* 문자열 추가 */ 
   printf("str1 : %s, str2: %s \n", str1, str2); 
 
   printf("input string ? "); 
   gets(str2);
 
   printf("\nStr1 : %s, Str2 : %s --> 문자열 비교\n", str1, str2); 
   printf("strcmp(\"apple\", \"apple\"): %d \n", 
                strcmp("apple", "apple")); 
   printf("strcmp(\"a\", \"ABCEFG\"): %d \n", 
                strcmp("a", "ABCDEFG")); 
   printf("strcmp(str1, str2): %d \n",  
                strcmp(str1, str2)); 
   printf("strcmp(str2, str1): %d \n",  
                strcmp(str2, str1)); 
   printf("strcmp(str1, str1): %d \n",  
                strcmp(str1, str1)); 
   return 0; 
}

my_strcpy.c  // 문자열 복사 구현하기 
 #include <stdio.h> 
 
int main(void) 
{ 
   char str1[20]="kingdom",str2[20]=""; 
   int i; 
 
   printf("before -> str1 : %s, str2: %s \n", str1, str2); 
 
   for(i=0;str1[i];i++) 
     str2[i]=str1[i]; 
   str2[i]='\0'; 
 
   printf("after -> str1 : %s, str2: %s \n", str1, str2); 
 
   return 0; 
} 


   문자열을 값으로 변환하는 함수 

int atoi( const char *string ); /* 문자열 인수를 integer로 반환 */ 
long atol( const char *string ); /* 문자열 인수를 long으로 반환 */ 
double atof( const char *stirng ); /* 문자열 인수를 double로 반환 */ 
※  이 함수들은 <stdlib.h> 헤더 파일을 사용한다. 



Str_arr5.c  // 문자열 처리함수의 이해 구현하기 

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
int main(void) 
{ 
  char command[80], temp[80]; 
  int num1, num2; 
 
  while(1) 
  { 
   printf("더하기, 빼기, 곱하기, 나누기. \n"); 
   printf("Operation ?(종료:quit) "); 
   gets(command); 
   if(!strcmp(command, "quit"))  
     break; 
     do{ 
        printf("첫번째 수: "); 
        gets(temp); 
      } while(temp[0]<'0' || temp[0]>'9'); 
      num1=atoi(temp); 
  
 do{ 
       printf("두번째 수 : "); 
       gets(temp); 
    } while(temp[0]<'0' || temp[0]>'9'); 
    num2=atoi(temp); 
    if(!strcmp(command, "더하기")) 
       printf("%d + %d = %d\n",num1, num2,  
                               num1+num2); 
    else if(!strcmp(command, "빼기")) 
       printf("%d - %d = %d\n",num1, num2,  
                               num1-num2); 
    else if(!strcmp(command, "나누기"))  { 
       if(num2) printf("%d / %d = %d\n", 
                   num1, num2, num1/num2);  } 
    else if(!strcmp(command, "곱하기")) 
       printf("%d * %d = %d\n",num1, num2, num1*num2); 
    else  
       printf("연산자가 바르지 않습니다. \n"); 
    fflush(stdin);    } /* while 반복문 블록의 끝 */ 
   return 0; 
} 


번호 제목 날짜 조회 수
43 구조체 포인터 2014.06.15 931
42 구조체의 선언과 데이터 입·출력 2014.06.15 3084
41 함수 포인터 2014.06.15 447
40 배열과 포인터 2014.06.15 406
39 포인터 연산 2014.06.15 384
38 포인터 변수 2014.06.15 414
37 데이터 정렬 2014.06.15 424
36 배열 초기화 2014.06.14 630
35 2차원 배열 2014.06.14 670
» 문자열 처리 함수 2014.06.14 412
33 문자열 입출력 함수 2014.06.14 442
32 접근 수정자 2014.06.14 824
31 전역 변수 2014.06.14 308
30 지역 변수(local variable) 2014.06.14 295
29 변수와 메모리 저장 위치 2014.06.14 428
28 비트 연산자 2014.06.14 288
27 관계 연산자와 논리 연산자 2014.06.14 472
26 증감 연산자 2014.06.14 319
25 printf() 함수의 형식 지정자 2014.06.14 7522
24 열거 형 변수의 이해 2014.06.14 465