참고 문서 |
---|
문자열 처리 함수
- 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; }
댓글 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 |