문자열을 뒤집는 함수를 작성
코딩 문제는 함수 매개변수가 char*로 제공되는 문자열을 반전시키는 C#으로 함수를 작성해야 합니다.
char* 매개변수는 C++에서 문자열을 전달하는 일반적인 방법인 문자 배열에 대한 포인터입니다. C#에서 동등한 데이터 유형은 char[] 배열입니다.
이 문제를 해결하기 위해 먼저 루프를 사용하여 char* 매개변수를 char[] 배열로 변환하는 것으로 시작할 수 있습니다. 그런 다음 다른 루프를 사용하여 char[] 배열을 뒤집고 배열의 중간에 도달할 때까지 반대쪽 끝에 있는 문자를 교체할 수 있습니다. 마지막으로 char[] 배열을 다시 문자열로 변환하고 결과로 반환할 수 있습니다.
다음은 char[] 매개변수로 이 문제를 해결하는 C# 함수의 예입니다.
public static string ReverseString(char[] charArray)
{
int left = 0;
int right = charArray.Length - 1;
while (left < right)
{
char temp = charArray[left];
charArray[left] = charArray[right];
charArray[right] = temp;
left++;
right--;
}
return new string(charArray);
}
이 함수는 char[] 배열을 매개변수로 사용하고 left 및 right 두 변수를 초기화하여 배열의 첫 번째 문자와 마지막 문자의 인덱스를 나타냅니다. 그런 다음 'left' 및 'right' 인덱스가 중간에서 만날 때까지 배열의 반대쪽 끝에 있는 문자를 교환하는 루프에 들어갑니다. 마지막으로 반전된 char[] 배열을 다시 문자열로 변환하고 결과로 반환합니다.
이 함수를 사용하면 char[] 배열로 전달된 모든 문자열을 쉽게 되돌릴 수 있습니다.
문자열을 받아서 각 단어가 반전된 새 문자열을 반환하는 함수를 작성
코딩 문제는 문자열을 입력으로 사용하고 각 단어가 반전된 새 문자열을 반환하는 함수를 C#으로 작성해야 합니다. 또한 함수 매개변수는 char* 형식이어야 합니다.
이 문제를 해결하기 위해 먼저 split() 메서드를 사용하여 입력 문자열을 단어로 분할할 수 있습니다. 그런 다음 단어의 시작과 끝에서 문자를 교체하여 각 단어를 반복하고 되돌릴 수 있습니다. 마지막으로 반전된 단어를 새 문자열로 연결하고 반환할 수 있습니다.
다음은 C#의 구현 예입니다.
public static char* ReverseWords(char* inputString)
{
int len = strlen(inputString);
char* resultString = (char*)malloc((len + 1) * sizeof(char));
char* wordStart = inputString;
int i, j;
for (i = 0, j = 0; i < len; i++)
{
if (inputString[i] == ' ')
{
int wordLen = i - (int)(wordStart - inputString);
for (int k = 0; k < wordLen; k++)
{
resultString[j + k] = *(wordStart + wordLen - k - 1);
}
j += wordLen;
resultString[j++] = ' ';
wordStart = inputString + i + 1;
}
}
int wordLen = i - (int)(wordStart - inputString);
for (int k = 0; k < wordLen; k++)
{
resultString[j + k] = *(wordStart + wordLen - k - 1);
}
j += wordLen;
resultString[j] = '\0';
return resultString;
}
이 구현은 동적 메모리 할당을 사용하여 결과 문자열을 생성합니다. 또한 입력 문자열이 null로 종료된다고 가정합니다.
문장에서 각 단어의 첫 글자를 대문자로 하는 함수를 작성
문장을 매개변수로 받아 각 단어의 첫 글자를 대문자로 하고 수정된 문장을 출력으로 반환하는 함수를 생성해야 합니다. 함수는 문장을 char* 유형 매개변수로 취해야 합니다.
이 문제에 대한 해결책은 다음 단계를 통해 얻을 수 있습니다.
- 수정된 문장을 저장할 문자열 변수를 초기화합니다.
- 문장을 문자별로 반복합니다.
- 현재 문자가 단어의 첫 번째 문자인 경우(즉, 이전 문자가 공백이거나 문자열의 시작인 경우) 대문자로 하고 수정된 문장에 추가합니다.
- 현재 글자가 단어의 첫 글자가 아닌 경우 수정된 문장에 그대로 추가합니다.
- 수정된 문장을 반환합니다.
다음은 C#에서 함수를 구현한 예입니다.
public static char* CapitalizeWords(char* sentence)
{
int length = strlen(sentence);
string modifiedSentence = "";
bool isPreviousSpace = true;
for (int i = 0; i < length; i++)
{
if (isPreviousSpace && sentence[i] >= 'a' && sentence[i] <= 'z')
{
modifiedSentence += (char)(sentence[i] - 'a' + 'A');
}
else
{
modifiedSentence += sentence[i];
}
isPreviousSpace = (sentence[i] == ' ');
}
return modifiedSentence.ToCharArray();
}
이 함수는 문장의 각 문자를 반복하고 이전 문자가 공백인지 문자열의 시작인지 확인합니다. 그렇다면 현재 문자를 대문자로 변경하여 수정된 문장에 추가합니다. 그렇지 않은 경우 현재 문자를 수정된 문장에 그대로 추가합니다. 마지막으로 수정된 문장은 char* 형식으로 반환됩니다.
'개발자 이야기' 카테고리의 다른 글
지속적인 통합(CI)으로 게임 개발 프로세스의 수준을 높이십시오 (0) | 2023.04.13 |
---|---|
xLua 팁과 요령, 게임 개발 워크플로 최적화 (0) | 2023.03.30 |
메타버스란 무엇입니까? 디지털 공간의 미래에 대한 초보자 가이드 (0) | 2023.03.30 |
성능을 위한 게임 최적화, 일반적인 함정을 피하는 팁 (0) | 2023.03.29 |
메시 병합으로 Unity 게임 개발 최적화 (0) | 2023.03.28 |