문자열 함수
#include <string.h>
ㄴ 헤더파일 추가 (문자열 함수 제공)
1) strlen() : 문자열의 사이즈 반환
ㄴ strlen( 배열명 )
char fruit[100] = "apple";
printf("%c\n", fruit[1]);
char name[100] = { 0 };
printf("이름입력 : ");
scanf_s("%s", name, 100);
printf("name : %s\n", name);
// 1.
// strlen() 함수 : 문자열의 사이즈 반환
int size = strlen(name);
printf("%d\n", size);
2) strcpy_s() : 문자열 복사 (문자열은 = 대입으로 초기화 불가)
ㄴ strcpys( 복사할주소, 크기, 복사대상 )
// 2.
// strcpy_s() 함수 : 문자열 복사 (문자열은 =대입으로 초기화 불가)
// 1) 복사할 주소
// 2) 크기
// 3) 복사 대상
char* temp = new char[size +1]; // 실제길이의 +1만큼 동적할당
// 마지막 \0 값 자리 확보
strcpy_s(temp, size + 1, name);
printf("temp : %s\n", temp);
3) strcat() : 문자열 확장 / String Concatenate(잇다)
ㄴ strcat( 확장대상, "추가할 문자열")
// 3.
// strcat()_s 함수 : 문자열 확장
// 1) 확장대상
// 2) 추가할 문자열
char words[100] = { 0 };
strcat_s(words, "apple juice");
printf("%s\n", words);
4) strtok() : 문자열 자르기 / String Tokenize
ㄴ strtok("string", "구분자")
ㄴ 구분자를 발견하면 "\0" 끝처리 문자로 대치함
# define _CRT_SECURE_NO_WARNINGS
// 문자열에 대한 처리 -> _s 안정성 개선 함수로 권장 (무시)
# include <Windows.h>
# include <stdio.h>
# include <string.h>
int main() {
char dylan[] = "Do not gentle into that good night";
char* token;
token = strtok(dylan, " ");
while (token != NULL) {
printf("%s\n", token);
token = strtok(NULL, " ");
}
system("pause");
}
5) strcmp() : 문자열 비교 / Compare
strcmp(a, b) = ?
ㄴ -1 : a < b 음수
ㄴ 1 : a > b 양수
ㄴ 0 : a == b 0
// 5.
// strcmp() 함수 : 문자열 비교
char a[10] = "abc";
char b[10] = "def";
int result = strcmp(a, b);
printf("%d", result);
6) _itoa_s() : 형변환 (숫자->문자) / Integer to ASCII
ㄴ _itoa_s(변환할숫자, 저장할주소, 10)
ㄴ *표준함수 아님 주의
# include <Windows.h>
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
int main() {
// 6.
// 형변환 (숫자->문자)
// itoa
int num = 10;
char str[100] = { 0 };
// _itoa_s(int, char*, 10)
// 1) 변환할 수
// 2) 저장할 주소
// 3) 10진수
_itoa_s(num, str, 10);
printf("%s", str);
}
'C > ☞' 카테고리의 다른 글
[55] 가변 배열 컨트롤러 (0) | 2020.07.27 |
---|---|
[54] 동적할당 기본 (0) | 2020.07.27 |
[51] 문자열 기본 (0) | 2020.07.27 |
[00]-A. 캐릭터 이동 (0) | 2020.07.24 |
[00] 캐릭터 이동 (0) | 2020.07.24 |
댓글