[코딩문제]문자열 거꾸로 출력
#include <iostream>
using namespace std;
void CopyStr(char* dst, int descSize, const char* src)
{
const char* tempSrc = src; //주소 복사
while (*tempSrc != '\0') //널문자가 나올 때까지 루프
{
tempSrc++; //주소 위치 증가
}
int size = tempSrc - src; //루프된 주소와 원본 주소 위치를 빼주면 사이즈가 나옴
//dst 메모리 초기화
char* tempDst = dst; //주소 복사
for (int i = 0; i < descSize; i++) //배열 사이즈 만큼 루프
{
*tempDst++ = '\0'; //널문자로 초기화하며서 주소 증가
}
for (int i = 0; i < size; i++, dst++) //위에서 구한 원본 사이즈 만큼 루프, 복사할 주소인 dst도 증가
{
*dst = *(--tempSrc); //tempSrc는 처음에 '\0'이 들어 있으므로 먼저 빼주면서 진행. 내부 값을 복사
}
}
int main()
{
char src[] = "hello world"; //원본문자
char dst[512]; //복사할 공간
CopyStr(dst, sizeof(dst), src); // 복사 함수
//출력
cout << dst << endl;
getchar();
}
입력 : hello world
출력 : dlrow olleh
출처 : 내 머리, 내 손
'공부 > c++(c, STL)' 카테고리의 다른 글
[코딩문제]피보나치 수열 (0) | 2016.06.20 |
---|---|
[코딩문제]셀프 넘버(self-number) 풀이 (0) | 2016.06.18 |
C++11 람다 식 (0) | 2016.06.10 |
Vector의 역순 검색, 역 반복자(reverse_iterator) (0) | 2016.02.07 |
공통함수 헤더 처리 시 유의 사항 - 추가(1) (0) | 2015.09.25 |