본문 바로가기

알고리즘

[BOJ_17720] 문자열 + (이론정리)

문자 '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의 크기는 반드시 6이상.

 

 

s2 뒤에 s1을 붙임.

여기서 중요한 것은 출력할 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