C++

[강의] 10월 15일 수업정리

k-codestudy 2024. 10. 16. 02:58

오늘은 char에 대한 문제를 풀어보았다.

 

 

문제 1. 문자열의 갯수를 얻어오는 함수

#include <iostream>

int StrCount(const char* Str, int *pCount);

int main()
{
	char chData[64] = "asdafwqfsafrtqg";
	int nCount{};

	StrCount(chData, &nCount);
	printf("%d", nCount);
}

int StrCount(const char* Str, int* pCount)
{
	int nCount{};

	for (int i = 0; Str[i] != '\0'; i++)
	{
		nCount++;
	}
	*pCount = nCount;

	return *pCount;
}

 

문제 2. 문자열에 특정 글자가 몇개인지 얻어오는 함수

#include <iostream>

int strSpecificCount(const char* Str, char chSpecific, int *pCount);

int main()
{
	char chData[64] = "asdafwqfsafrtqg";
	char chSpecific{};
	int nCount{};

	chSpecific = 'a';

	strSpecificCount(chData, chSpecific, &nCount);
	printf("%d", nCount);
}

int strSpecificCount(const char* Str, char chSpecific, int* pCount)
{

	int nCount{};

	for (int i = 0; Str[i] != '\0'; i++)
	{
		if(Str[i] == chSpecific)
		nCount++;
	}

	*pCount = nCount;

	return *pCount;
}

 

문제 3. 소문자를 대문자로 바꿔주는 함수 

#include <iostream>

void upperStr(char * Str);

int main()
{
	char chData[64] = "asd52a1f124wq124fsa12frtqg";
	upperStr(chData);
	printf("%s", chData);
}

void upperStr(char* Str)
{
	for (int i = 0; Str[i] != '\0'; i++)
	{
		if (Str[i] >= 'a' && Str[i] <= 'z')
			Str[i] -= 32;
	}
}

 

문자열과 char 배열의 차이점 정리

  1. 문자열 - char Str[20] = "asfawfasf";
    • 문자열은 자동으로 null 종결자('\0')가 포함되어, 배열 끝에 종결자가 삽입된다.
    • 따라서 char 배열이면서 null로 종결된 문자열로 다룰 수 있다.
    • 함수에서 문자열을 처리할 때는 종결자('\0')까지 진행하며, 문자열 길이를 따로 전달하지 않아도 괜찮다.
    • const char* Str에서 Str은 문자열을 가리키기 때문에, 헝가리안 표기법에 따라 p를 붙이지 않아도 괜찮다.
  2. char 배열 - char chData[20] {'a', 'b', 'c', 'd', ...};
    • 명시적으로 null 종결자('\0')를 포함하지 않으면 단순한 char 배열로 취급한다.
    • 이 경우, 문자열로 사용하려면 명시적으로 마지막에 '\0'을 추가해줘야 한다.

 

'C++' 카테고리의 다른 글

[강의] 10월 17일 수업정리  (1) 2024.10.18
[강의] 10월 16일 수업정리  (1) 2024.10.17
[강의] 10월 11일 수업정리  (1) 2024.10.14
[강의] 10월 10일 수업정리  (2) 2024.10.11
[강의] 10월 4일 수업정리  (1) 2024.10.05