다시 오신 걸 환영해요 이전 과제에 대한 해결책을
데모를 보여드릴게요 캐릭터 배열을 이해하는 거였죠
주로 문자열의 길이를 맞추기 위한 함수를 작성할 겁니다
문자열을 연결하는 함수와 두 개의 문자열이 같은지
확인하는 함수도요
프로젝트를 하나 만들게요 그냥 문자열 이해라고
부를게요
가장 먼저 이 길이 함수를 구현할 거예요
맨 위에 3개의 함수
선언을 만들 거예요
첫 번째 것은 문자열의 길이로 이름을 짓고요
낙타 케이스로 이름을 지을 거예요
이건 상수 문자열을 취할 거예요
문자열인지 어떻게 알죠? 문자 배열이니까요 그런 다음
세미콜론을 넣을 거예요 그게 첫 번째가 될 테니 지금은
여기서 멈추죠
이 함수를 생성해 아래에서
정의할 테니 키워드
구조를 이해하실 수 있을 거예요
Const은 바꿀 수 없는 문자열이란 뜻이에요 수정할 수 없죠
여기에서 컨스트를 사용하는 이유는 함수
안의 문자열을 수정하고 싶지 않기 때문입니다 단순히
구문을 분석하고 길이를 반환하고 정수를 반환하기 위해서죠
이 함수는 구현이 아주 쉬워요 그냥 배열을 통과하는 거니까요
inCount = 0이라고
할 수 있죠 이건 로컬 변수예요
이 함수 안에서만 사용할 수 있어요
왜 연산자의 사이즈를 쓰면 안 되는지 궁금하실 수도 있습니다 연산자의
사이즈는 문자열의 사이즈를 알려주는 거지 문자열 안에 몇 개의 문자가
있는지 알려주는 게 아니니까요
루프를 만들어서 Null 터미네이터를
칠 때까지 배열을 계속 돌리면 돼요
문자열을 볼 수 있어요 문자열 개수가 Null
터미네이터와 다르다고 할 수 있고 Null
터미네이터는 단일 문자로 백슬래시 0이라고
표현될 수 있죠
같지 않은 연산자를 쓸 수 있어요 문자와 비교하니까요
while 문의 본문에는 한 가지만 있어요 ++ 카운트요
계속 증가하는 거죠
그런 다음 그걸 반환하고 싶어요 returnCount라고 하면 끝이죠
전체 문자열 길이 함수죠 아주 쉬워요 문자열은 배열
안에 있고 문자열은 Null 터미네이터로
끝나니까요
테스트하기 위해 메인 메서드를
시작하겠습니다 동일한 chars를
생성할 수 있습니다 단어 1, Jason이라고 하세요
C#에서 캐릭터 배열을 만드는 방법이죠
상수가 꼭 필요하진 않지만 이건 수정된 게 아니에요
char 키워드, char data type, 식별자, 그리고 대괄호를 사용하세요.
대괄호 안에서 크기를 지정하지 않는 게 나아요 C 컴파일러가
자동으로 Null 터미네이터를 추가할 테니까요
할당 연산자를 입력한 후에는
큰따옴표 안에 문자열을 리터럴로 입력하죠
제대로 작동하는지 확인하기 위해 몇 개를 생성하죠
문자열을 아주 쉽게 디스플레이할 수 있어요 %s 기호를
사용할 수 있으니까요 여기서 정말 디스플레이하고 싶은
건 길이예요 %d를 사용할
거예요
이 세 개의 문자열의 링크를 프린트할게요
%d요 그 사이에 빈칸을 두어 라인 피드를 추가하죠
이건 각 단어에 대한 문자열 길이 함수를 호출할
거예요 아주 간단하죠
끝이에요 이제 실제로 작동하는지 빌드하고 테스트해 볼 수 있어요
결과물을 보면 Jason의 길이가
보입니다. 5네요. OK의 길이는 2고요. 8처럼
보이는 것도 있네요.
5, 2, 8은 맞는 것 같네요
문자열 길이를 작성하는 방법이죠 연결 기능으로 넘어가죠
연결 함수는 세 개의
문자열과 두 개의 상수만 있으면 돼요
이건 아무것도 반환하지 않을 거예요 결과 문자열을 첫
번째 매개 변수에 넣는 거죠
concat이라고 해 볼게요. 결과를 보고 문자열이
2개가 될 거예요 하나는 2개를
연결하려는 거고 다른 하나는 하나의 문자열을 가지려는
거죠 문자열 이름을 1, 문자열 2로 할게요
다 됐어요 그게 우리 기능 선언이에요
정의되기 전에 어디서든 사용할 수 있어요
이것도 배열을 거쳐야 해요 2개의 배열을 거치고 각각의
결과 문자열에 추가를 하면 돼요
몇 가지 로컬 변수를 만들 건데 이 함수 안에서만 사용할 수 있죠
int I와 j요
그런 다음 for 루프를 이용해
배열을 통과할 거예요 for I = 0이라고 하죠
스트 서브1 혹은 서브우퍼1은 Null 터미네이터와
같지 않음을 말합니다 그리고
I를 증가시키죠
우리는 for 루프 구문에
익숙합니다 가장 먼저 루프 식별자가 있죠
첫 번째 세미콜론 전에 두 번째 세미콜론 전에 점프하는
조건에서 루프 컨트롤 변수를
수정합니다 무한 루프가 없다는 걸 확인하기 위해서요
결과만 저장하면 돼요
하위 I = 1 하위 I
이것들은 문자이기 때문에 the== 할당을 사용해도 아무 문제 없어요
이걸 문자 배열로 할
순 없죠 캐릭터 배열은 배열에 할당 못 하니까요
str 카피를 써야 할 거예요
첫 번째 문자열을 복사하는 거죠
이제 두 번째 문자열을 결과에 연결해야죠
아주 비슷한 걸 하는 거예요 두 번째 배열을 보는
것만 빼고요 결과에서 올바른 곳에 두도록 하는 거죠
그래서 이렇게 했어요 j에서 0으로 가면 str에서
j는 null 터미네이터 +j와 같지 않아요
결과는 I 더하기 j로 끝나게 되죠
10글자를 추가하면 그 10글자로
시작합니다 0 기반이니까요 그냥 j만 추가할
겁니다 10 더하기 0 10 더하기 1 등등이요
그게 다예요
마지막으로 정말 중요한 건 null 터미네이터를 추가하는 거예요
결과 I + j라고 입력하고 단일 문자 Null
터미네이터를 추가합니다 작은따옴표
안에 백슬래시 0이죠
그게 우리 기능이죠
이 함수에서 아무것도 반환할 필요 없어요
str1에서 str2로 복사하면 되니까요
이걸 테스트해보죠
이번에는 두어 글자로 테스트할 수 있을 것 같아요
기존의 캐릭터를 사용할 거예요 한 쌍을
연결하는 거죠
다른 결과 하나를 생성해야
해요 결과라고 하고
클리어할게요
여기선 첫 번째 것을 위해
크기를 지정해야 해요
그래서 크기는 50으로 지정할 거예요 제한할 거예요
이 지속적인 캐릭터들은 잘 될 거예요
이제 printf라고 하고
문자열을 출력하죠
퍼센트 s를 입력하고 concat을 입력해요
우리가 붙인 이름이죠 결과를 전달할게요
단어 1, 단어 2요
이건 출력으로 표시되어야 합니다
몇 개의 새로운 라인에 두도록 하죠
출력 제이슨으로 표시되어야 해요 concat은 어떤 데이터도 반환하지 않아요
그래서 printf에 직접 넣을 수 없죠
제가 할 일은 호출하고 디스플레이 결과를 보여주는 거죠
그래서 concat이라고 부르죠
모든 걸 결과에 입력하고 그 결과를 표시하죠
다시 한 번 이걸 실행하면 Jason이
괜찮은 걸 볼 수 있죠.
구현하고자 하는 세
번째 함수는 비교 함수입니다 두 개의 문자열이 같은지 확인하기 위한 거죠
이 함수는 부울을 반환해야 해요
그래서 표준 소울을 포함하고 싶어요
부울, true, false 값을 사용할 수 있어요
이건 사실 동일한 문자열로 정의될 거예요
상수 문자 배열, s1을 취하고 다른 하나는
두 개의 문자열이 같은지
확인하죠
오른쪽 헤더를 포함했는지 확인하기 위해서요 그걸 만들
거예요 그런 것 같아요 이제 bool 키워드도 쓸 수
있죠 이걸 포함했으니까요 true false도 쓸 수 있어요
이 동일한 문자열을 구현해보죠
이것도 비슷할 거예요 배열을
살펴보고 각 캐릭터를 확인하는 거죠
몇 가지 로컬 변수를
생성할 거예요 루프는 0으로 초기화됐죠
부울에서는 등호 여부를
알려줍니다 등호 같은 것을 반환할 것이기 때문이죠 이걸 거짓으로 초기화할 수 있어요
제일 먼저 할 일은 숫자를 세는 거예요
둘 다 얼마나 큰지 보고
싶어요 while 루프를 사용할 수 있습니다
count가 필요하기 때문에 크기를 알 수 있습니다
null이 종료되었는지 확인하기
위해서죠
우리가 전달하는 문자열이 같은 크기라고 가정할게요
간단한 while 루프를 작성할 수 있어요 if문도 쓸 수 있어요
while 루프에 모든 걸 통합해
논리 연산자를 이용해 비교를 했는데요
논리적 연산자를 사용할 필요가 없어요 if문을 이용해서 두 번째 줄 전체를
훑어볼 수 있어요
하지만 여기서 제가 한 것은 s1 sub
I가 s2 sub I와 같다면 null
터미네이터와는 같지 않아요.
그 두 개가 Null 터미네이터와
같다면 둘 중 하나라도 Null이면 튀어나와야 하니까요
더하기 더하기 I라고 하죠 마지막으로 할 일은 Null 터미네이터인지
확인하는 거예요 그렇다면 올바른 데이터를 반환하도록
부울 변수를 설정할 수 있죠
s1 subi가 null 터미네이터라고
설정하고 s2 subi가 null
터미네이터라고 설정하면 부울 변수를 =으로
설정하고 반환할 수 있어요.
그런 다음 return =라고 하세요
이걸 테스트하려면 좋은 줄과 나쁜 줄을 테스트해야 해요
= 문자열이라고 하죠
부울의 정수 값을 출력할게요 %d 여기
문자열에 ==라고 하죠 이건 뭔가를 반환하니 이걸 print
식에 = 문자열에
넣을 수 있어요 문자열이 동일해야 해요
그런 다음 Jason
쉼표 제이슨을 넘기죠
이번엔 Jason이라고
할게요.
첫 번째는 1을 반환하고 두 번째는 0을
반환해요 1은 참, 0은 거짓이죠
이걸 실행하면 1과 0이
보이죠 1은 true, 0은 false 근데
읽기가 어려워요 라인 피드가 없으니까요 다시 보여드리기 위해
라인 피드를 추가하죠
이제 0 하나, true false가
보이네요 제이슨 제이슨과 막상막하예요
제이슨의 제이슨은 평등하지 않아요
이 간단한 함수들을 통해
배우실 수 있습니다 문자 배열과 이 개념으로 문자열이
어떻게 표현되는지를요
고마워요 소스 파일도 제공하겠습니다 여러분이 보다 상세히 보실 수 있도록요
도움이 됐으면 좋겠네요