c# 뿐만 아니라 많은 언어에서 string 관련 편집 메서드를 제공한다.
때문에 우리는 쉽게 string을 수정 할 수 있다고 착각 하곤 한다.
하지만 string 은 태생부터 heap 영역에 저장되는 데이터로 수정이 불가능 하다 .
( C 의 경우 메모리의 직접접근으로 수정 가능)
static void Main(string[] args)
{
string str = "abcdefg";
str[0] = 'b';
}
오류 CS0200 'string.this[int]' 속성 또는 인덱서는 읽기 전용이므로 할당할 수 없습니다.
따라서 위와 같은 코드는 오류를 생성 한다.
때문에 우리는 string 을 수정하기 위해서는 string 을 char 배열로 바꿔줄 필요가 있다.
다행이 c#은 이를 위한 메서드가 있다.
string str = "abcdefg";
char[] Cstr1 = new char[str.Length];
char[] Cstr2 = new char[str.Length];
for (int i = 0; i < str.Length; i++)
{
Cstr1[i] = str[i];
}
Console.WriteLine("for 노가다 : " + Cstr1);
Cstr2 = str.ToCharArray();
Console.WriteLine("ToCharArray : " + Cstr2);
메서드가 없다면 위와 같이 일일이 for 문을 활용해서 대입해줘야 한다. ㄷㄷ
'기타' 카테고리의 다른 글
공부 도움되는 블로그 (0) | 2021.06.19 |
---|---|
개꿀잼 소프트 웨어 만화 (0) | 2021.06.16 |
cl 빌드 과정에서 경유파일 생성 방법 (0) | 2021.06.02 |
프로그램 빌드 과정 (0) | 2021.06.01 |
도스창에서 c언어 컴파일 & 빌드 (0) | 2021.06.01 |
댓글