C++ 문자열 처리 함수

2014.06.14 09:48

엘카 조회 수:407

참고 문서  
 문자열 처리 함수 
  • 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 926
42 구조체의 선언과 데이터 입·출력 2014.06.15 3080
41 함수 포인터 2014.06.15 438
40 배열과 포인터 2014.06.15 402
39 포인터 연산 2014.06.15 383
38 포인터 변수 2014.06.15 411
37 데이터 정렬 2014.06.15 422
36 배열 초기화 2014.06.14 627
35 2차원 배열 2014.06.14 667
» 문자열 처리 함수 2014.06.14 407
33 문자열 입출력 함수 2014.06.14 435
32 접근 수정자 2014.06.14 819
31 전역 변수 2014.06.14 305
30 지역 변수(local variable) 2014.06.14 291
29 변수와 메모리 저장 위치 2014.06.14 423
28 비트 연산자 2014.06.14 284
27 관계 연산자와 논리 연산자 2014.06.14 467
26 증감 연산자 2014.06.14 316
25 printf() 함수의 형식 지정자 2014.06.14 7520
24 열거 형 변수의 이해 2014.06.14 465