개발/Client
[C/C++]문자열을 자유자재로 다룰수 있는가?
밀수나라
2011. 7. 13. 15:47
(아래 0- 로 시작하는 과제는 C 표준 함수를 사용하지 않고 포인터 연산을 통해 구현한 버전과 C 표준 함수를 사용한 두 버전을 각각 구현하시오.)
========================================================================
0-1. 문자열을 더하는 함수를 작성하시오.
char* GetAppendedString(const char* source, const char* toAppend) {
...
}
main(...) {
cout << GetAppendedString("Hello", "World"); // HelloWorld
}
========================================================================
0-2. 문자열을 비교하는 함수를 작성하시오.
bool IsEqualString(const char* source, const char* target) {
...
}
main(...) {
cout << IsEqualString("Hello", "World"); // false
}
========================================================================
0-3. 문자열을 복사하는 함수를 작성하시오.
char* CopyString(char* dst, const char* src) {
...
}
main(...) {
char szValue[80];
...
CopyString(szValue, "HelloWorld");
cout << szValue; // HelloWorld
}
========================================================================
0-4. 문자열을 특정 문자로 분리하여 배열을 반환하는 함수를 작성하시오.
?? Tokenize(char* szValue, char* token, ???) {
...
}
main(...) {
char* value = "ABC,DEF,GHI";
?? = Tokenize(value, ',');
for (int i = 0; i < ??; i++) {
cout << ??[i] << endl;
}
// ABC
// DEF
// GHI
}
========================================================================
========================================================================
1. 문자열과 숫자를 더하여 문자열을 반환하는 함수를 작성하시오.
char* GetNumericAddedString(const char* arg_szValue, int arg_nNum)
{
}
========================================================================
2. 문자열에 특정 범위 내의 숫자를 더한 후 배열로 반환하는 함수를 작성하시오.
?? GetStringArray(const char* arg_szValue, int arg_nBeginIdx, int arg_nEndIdx)
{
return ??
}
main(...)
{
?? pArr = GetStringArray("Test", 0, 7);
for (int i = 0; i <= 7; i++) {
cout << pArr[i] << endl;
}
// Test0, Test1, Test2, ... Test7
}
========================================================================
3. 위 2번에서 반환된 ??의 메모리를 해제하는 코드를 작성하시오.
========================================================================