문자 '1' 의 아스키코드 값은 49이다.
printf("%d", '1' - 48) 은 숫자 1을 리턴한다.
문자 '0' 은 48 / 대문자 'A' 는 65 / 소문자 'a' 는 97
[문자열 c++ 정리]
<string.h> <= 필수
strlen(s1)와 같이 strlen 함수에 문자열 포인터를 넣으면 문자열의 길이가 반환됩니다.
여기서는 Hello가 5글자이므로 5가 반환됩니다.
즉, strlen으로 문자열 길이를 구할 때는 순수하게 문자열의 길이만 구하며 NULL 부분은 포함하지 않음
두 문자열이 같으면 0
뒷 문자열의 아스키코드값이 크면 -1
여기서 중요한 것은 출력할 s2인데 s2의 경우 s1을 붙이므로 배열의 크기를 null 을 고려하여 크게 잡는다.
여기서!!
strcat 함수로 문자열 포인터 s2 뒤에 문자열 포인터 s1을 붙였습니다.
하지만 실행해보면 에러가 발생합니다. 문자열 포인터 s2는 읽기 전용 메모리라서 문자열을 붙일 수 없습니다.
문자열 안에서 특정문자로 검색하는 방법
여기서 주의할 점은 특정문자로 시작하는 문자열을 검색하는 것.
while(ptr != NULL) // 검색된 문자열이 없을때까지 반복
ptr = strchr(ptr+1,'c')
예시를 하나 더 살펴보면
'o' 로 시작하는 문자열을 찾고, 그 다음 'o'로 시작하는 것 찾고..
ptr이 NULL 일때까지 반복한다.
여기서 ptr은 strchr(s1,'o') 이다
오늘은 여기까지 해야겠당
'알고리즘' 카테고리의 다른 글
[BOJ_1157] 이차원배열 & STL (0) | 2021.02.01 |
---|---|
[BOJ_10809] 문자열 (0) | 2021.02.01 |
[홍대 스터디] 1주차 (문자열 10문제, SQL 5문제) (0) | 2021.01.30 |
[python] 변수와 입력 (0) | 2021.01.27 |
[프로그래머스] 조이스틱 (0) | 2020.12.22 |