※ C / C++을 이미 알고 있으나 개인적인 공부를 위해 포스팅 하는 글이므로
C++에 대한 구체적인 정보를 담고 있지 않습니다.
1) 문자열 길이 번환
int StrLen(const char* str)
{
int cnt = 0;
while (*(str+cnt) != '\0')
{
cnt++;
}
return cnt;
}
ㆍ 간단하게 문자열의 길이를 반환하는 함수. \0을 만나기 전까지 반복문을 돌려준다.
2) 문자열 복사
- 포인터를 이용한 방식으로 해볼 예정이다.
char* StrCpy(char* dest, char* src)
{ char* ret = dest;
while (*src != '\0')
{
*dest = *src;
*dest++;
*src++;
}
*dest = '\0';
return ret;
}
ㆍ 포인터의 메모리 커서를 변경해 줄 것이기 때문에 초기값을 미리 ret에 저장해뒀다.
ㆍ \0을 만나기 전까지 커서를 이동하며 복사해줬다.
3) 문자열 뒤에 문자열 삽입
char* StrCat(char* dest, char* src)
{
char* ret = dest;
while (*dest != '\0')
{
*dest++;
}
while (*src != '\0')
{
*dest = *src;
*dest++;
*src++;
}
*dest = '\0';
return ret;
}
ㆍ 마찬가지로 초기값을 저장해 주고 dest의 커서를 뒤로 이동시켜 준 후 *src를 *dest에 넣어줬다.
4) 문자열 비교하기
int StrCmp(char* a, char* b)
{
int i = 0;
while (a[i] != '\0' || b[i] != '\0')
{
if (a[i] > b[i])
return 1;
if (a[i] < b[i])
return -1;
i++;
}
return 0;
}
ㆍ 두 분자열이 같으면 0 아스키순으로 앞에가 먼저면 -1 뒤에가 먼저면 1을 반환하는 함수
5) 문자열 뒤집기
void ReverseStr(char* str)
{
int len = StrLen(str);
for (int i = 0; i < len / 2; i++)
{
int temp = str[i];
str[i] = str[len - 1 - i];
str[len - 1 - i] = temp;
}
}
'C++프로그래밍 > C 와 C++ 기초실습' 카테고리의 다른 글
배열과 포인터 (차이점 및 다중 포인터) + 포인터 주의 사항 (0) | 2024.09.19 |
---|---|
다중 포인터 (const char**) 문자열 (1) | 2024.09.18 |
배열과 포인터 (문자열) (0) | 2024.09.18 |
포인터와 참조타입 비교,차이 (const pointer) (0) | 2024.09.18 |
참조타입 (0) | 2024.09.18 |