C++/C++ 기타

C++ 아스키 코드 영어 단어 길이 구해보기

kimc 2021. 7. 3. 22:41


 

이번 글을 통해 배워갈 내용

  1.  영어 단어의 문자길이를 구해보겠습니다.
  2.  char 배열을 통해 문자길이를 구해보고
  3.  스트링 stl를 통해 문자길이를 구해보겠습니다.

 

"Hello" 라는 단어는 6개의 문자로 이루어져 있습니다.

 

사람의 눈으로 세는 문자 수를 컴퓨터로 한번 프로그래밍 해보겠습니다.

 

#include <iostream>
#include <cstring>
using namespace std;


int main()
{
	char myStr[] = "hello";
	char *ch = myStr;
	int counter = 1;

	for (; (*ch !='\0'); ch++)
	{
		cout << *ch;
		cout << " " << counter;
		counter++;
		cout << endl;
	}


	cout << counter-1;

    return 0;
}

 

char 배열을 만들고 "hello" 라는 스트링을  할당합니다.

 

char * ch 포인터를 위의 배열에 가리킵니다.

 

스트링의 끝은 '\0' 으로 끝나기 때문에 '\0'이 나올때까지 스트링내부에 값을 하나씩 봅니다.

 

결과

h 1
e 2
l 3
l 4
o 5

5

 

char myStr[] = "kingismyname"; 일때

결과

k 1

i 2

n 3

g 4

i 5

s 6

m 7

y 8

n 9

a 10

m 11

e 12

12

아스키 코드를 기준으로 만들었기 때문에 유니코드에서는 버퍼 사이즈가 달라서 답이 나오지 않습니다.

 


캐릭터 배열이 아니고 스트링을 쓴다면 length() 함수를 통해 위에 식을 두줄로 끝낼수 있습니다.

#include <iostream>
#include <cstring>
using namespace std;


int main()
{
    string k = "hello";
    cout<<k.length();

    return 0;
}

 

결과
5


 

오늘도 즐거운 코딩하시길 바랍니다 ~ :)

 

참조 및 인용

 

C++ Primer

 


 

728x90