Q&A

  • 영문의 첫자만 대문자로 바꾸는 방법은..?


안녕하세요...



뭐 좀 해 볼려구 하는데.. 막히네요... 쩝...



질문은 영문의 대문자 소문자 바꾸는 방법은 알겠는데요..



영문 문장에서 영문 철자의 맨 처음자만을 대문자로 하고 싶습니다.



군데... 잘 않되네요,...



예) abc def ghi sds -> Abc Def Ghi Sds



이런식으로 문자열을 바꾸고 싶습니다..



답변 좀 해주세요...



그럼 좋은 하루 보네시고... 날씨 더운데.. 건강하세요...



3  COMMENTS
  • Profile
    로리대마왕 2001.05.31 06:18
    스트링형에 문장을 대입하신담에 Length()함수를 써서 그 문장의 길이를 구하고



    For 루프를 그 길이만큼 돌려서 중간에 공백(' ')을 만나면 그 다음 인덱스를 Uppercase



    를 사용해서 대문자로 바꿔주시면 될듯합니당..



    아 처음 인덱스의 문자도 Uppercase를 사용해서 대문자로 해주셔야겠죠..









    칼라 wrote:

    >

    > 안녕하세요...

    >

    > 뭐 좀 해 볼려구 하는데.. 막히네요... 쩝...

    >

    > 질문은 영문의 대문자 소문자 바꾸는 방법은 알겠는데요..

    >

    > 영문 문장에서 영문 철자의 맨 처음자만을 대문자로 하고 싶습니다.

    >

    > 군데... 잘 않되네요,...

    >

    > 예) abc def ghi sds -> Abc Def Ghi Sds

    >

    > 이런식으로 문자열을 바꾸고 싶습니다..

    >

    > 답변 좀 해주세요...

    >

    > 그럼 좋은 하루 보네시고... 날씨 더운데.. 건강하세요...

    >

  • Profile
    칼라 2001.05.31 20:59
    공룡이라는 분이 알려주신 function 입니다..



    안녕하십니까..공룡입니다..

    저의 허접하고 무식한 방법으로 이런 함수 비슷한거 만들었느뎅..

    암튼 대충 값은 나오네여..^^;

    음..함 보시고 참고 하세여..

    고수님덜 더 쉽게 하는 방법있으면 올려주세여... :)

    그럼..전이만 도망갑니다..이궁.. -.-;;

    후다닥..



    Function TForm1.StringCut(LongChar: String): String;

    var

    i: integer;

    Temp, Temp1, ChangeChar: String;

    begin

    ChangeChar := '';

    for i := 1 to Length(LongChar) do

    begin

    if i = 1 then

    ChangeChar := Uppercase(Copy(LongChar, i, 1))

    else

    begin



    Temp := Copy(LongChar, i-1, 1);

    Temp1 := Copy(LongChar, i, 1);



    if (Temp = ' ') and (Temp1 <> ' ') then

    begin

    ChangeChar := ChangeChar + Uppercase(Temp1);

    end

    else

    begin

    ChangeChar := ChangeChar + Temp1;

    end;

    end;

    end;

    Result := ChangeChar;

    end;

  • Profile
    최용일 2001.05.31 22:08
    안녕하세요. 최용일입니다...



    흠 Copy함수를 많이 쓰네요... 그리고 문자하나를 대문자로 바꾸는것은 UpCase함수를 쓰시는것이 더 빠를듯하군요...



    function FirstWordUppercase(const S: string): string;

    var

    I: Integer;

    Space: Boolean;

    begin

    Result := S

    Space := True;

    for I := 1 to Length(Result) do

    begin

    if Result[I] = ' ' then

    Space := True

    else if Space then

    begin

    Result[I] := UpCase(Result[I]);

    Space := False;

    end

    end;

    end;



    ^^ 항상 즐코하세요...



    칼라 wrote:

    > 공룡이라는 분이 알려주신 function 입니다..

    >

    > 안녕하십니까..공룡입니다..

    > 저의 허접하고 무식한 방법으로 이런 함수 비슷한거 만들었느뎅..

    > 암튼 대충 값은 나오네여..^^;

    > 음..함 보시고 참고 하세여..

    > 고수님덜 더 쉽게 하는 방법있으면 올려주세여... :)

    > 그럼..전이만 도망갑니다..이궁.. -.-;;

    > 후다닥..

    >

    > Function TForm1.StringCut(LongChar: String): String;

    > var

    > i: integer;

    > Temp, Temp1, ChangeChar: String;

    > begin

    > ChangeChar := '';

    > for i := 1 to Length(LongChar) do

    > begin

    > if i = 1 then

    > ChangeChar := Uppercase(Copy(LongChar, i, 1))

    > else

    > begin

    >

    > Temp := Copy(LongChar, i-1, 1);

    > Temp1 := Copy(LongChar, i, 1);

    >

    > if (Temp = ' ') and (Temp1 <> ' ') then

    > begin

    > ChangeChar := ChangeChar + Uppercase(Temp1);

    > end

    > else

    > begin

    > ChangeChar := ChangeChar + Temp1;

    > end;

    > end;

    > end;

    > Result := ChangeChar;

    > end;