오늘은 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 배열의 차이점 정리
- 문자열 - char Str[20] = "asfawfasf";
- 문자열은 자동으로 null 종결자('\0')가 포함되어, 배열 끝에 종결자가 삽입된다.
- 따라서 char 배열이면서 null로 종결된 문자열로 다룰 수 있다.
- 함수에서 문자열을 처리할 때는 종결자('\0')까지 진행하며, 문자열 길이를 따로 전달하지 않아도 괜찮다.
- const char* Str에서 Str은 문자열을 가리키기 때문에, 헝가리안 표기법에 따라 p를 붙이지 않아도 괜찮다.
- 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 |