문자열 다루기
저장된 문자열 값을 수치로 변환
헤더 추가
#include <stdlib.h>
사용방법
[atoi -> ASCII to integer(문자열을 정수로 변환)]
변수 = atoi(문자열 배열명);
ex)
int main(void) { char str[] = "-145"; int suuti = atoi(str); printf("%d",suuti); return 0; }
문자열 복사
헤더 추가
#include <string.h>
사용방법
[strcpy -> string copy(문자열 복사)]
strcpy(복사 대상 문자열 배열명, 복사 원본 문자열 배열명);
ex)
int main(void) { char str[10]; strcpy(str, "STUDENT"); printf("%s \n",str); return 0; }
문자열 연결
헤더 추가
#include <string.h>
사용방법
[strcat -> string concatenate(문자열 연결)]
strcat(문자열이 저장된 배열, 추가할 문자열에 기억된 배열);
ex)
int main(void) { char str1[20] = "I"; char str2[] = " am"; char str3[] = " a student"; strcat(str1,str2); strcat(str1,str3); printf("%s \n",str1); return 0; }
strcat 주의할점은 적은 요소 개수의 문자 배열에 억지로 집어넣으면 오류가 난다.
문자열 합성 함수
헤더 추가
#include <stdio.h>
사용방법
[sprintf -> string printf formatted(서식 있는 문자열 출력)]
sprintf(저장할 배열,서식문자열,사용될 변수);
ex)
int main(void) { char sumProduct[30]; char sum[] = "C언어"; char product[] = "넘나 재밌었다."; sprintf(sumProduct,"1년간 %s %s",sum,product); printf("%s\n",sumProduct); return 0; }
문자열 비교
문자 배열 사이에는 == 연산자를 사용할 수 없다. 이유는 배열 내용(주소값)이 같은지 메모리 주소가 다른지 모르기 때문이다.
여러가지 방법이 있겠지만 배열 각 하나씩 값을 비교를 할 수 있을 것이고 strcmp함수를 이용하여 비교를 할 수 있을것이다.
이 블로그에서는 후자를 이용하여 비교를 해볼것이다.
헤더 추가
#include <string.h>
사용방법
[strcmp -> string compare(문자열 비교)]
변수 = strcmp(문자 배열1, 문자 배열2); ->일치하면 0 반환
ex)
int main(void) { char str1[256]; char str2[] = "Pen"; scanf("%s",str1); if (strcmp(str1, str2) == 0) { printf("성공\n"); } else { printf("실패\n"); } return 0; }
주의할점은 대소문자 구별을 해야 한다.