|
배열을 선언해서 copy해서 쓰는 방법도 있겠지만
//====================================================
AnsiString은 char *를 가지고 있으므로 배열로 바로 접근하면 됩니다.
//---------------------------------------
int __fastcall FindAlpabetK(AnsiStrign str)
{
char alpaK='k';
for(i = 1;i<=str.Length();i++)
{
if( str[i] == alpaK) //배열은 0번지 부터가 아닌 1번지 부터입니다.
{
return i;
}
}
}
//---------------------------------
AnsiString str="asdfkahdskfad";
int kpos=FindAlpabetK(str);
이렇게 할경우 메모리 낭비(?) 없고 ,
copy하는데 cpu자원 소모하지 않고
코드도 짧아지고
이래 저래 좋습니다.
//====================================================
만약에 어떤 char 데이타들을 String으로 변환할때도 쓸수 있습니다.
String str;
str.SetLength(4); //전체 길이를 미리 4로 선언하언 함(메모리를 확보하는 것)
str[1]='a';
str[2]='b';
str[3]='c';
str[4]='d';
...
이런식으로요
//====================================================
AnsiString의 char *는 알고계실것 같지만
AnsiString str;
str.c_str(); //이렇게하면 char *에 접근할수 있습니다.
박성수 님이 쓰신 글 :
: 바꾸려고 하는데 어떻게 하는지 잘모르겠네요
:
: 답변좀 ㅜㅜ
|