• ベストアンサー

英文字列の先頭だけを大文字に

Delphi XE5を使っています。 英文字列の先頭だけを大文字に変換したいのですが、 どうすればいいでしょうか? UpperCaseだとエラーが出ますよね。 文字コードに変換して加算するような方法しかありませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

UpperCaseはString型を返す関数です。 tmp_term[1]はChar型ですからString型は代入できません。 tmp_term[1] := UpperCase(tmp_term[1])[1]; とすればいいはず。

kihonkana
質問者

お礼

ありがとうございます。 うまく動作しました。

kihonkana
質問者

補足

ありがとうございます。 とりあえず、コンパイルは通ったんですけど、いろいろ修正しているうちに、なぜかうまく動作しなくなってしまいました。 トピを閉めさせていただくのは、動作を確認してからにさせてください。

その他の回答 (2)

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

UpperCaseはString型を返す関数です。 tmp_term[1]はChar型ですからString型は代入できません。 tmp_term[1] := UpperCase(tmp_term[1])[1]; とすればいいはず。

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

>UpperCaseだとエラーが出ますよね。 どんなエラーが出るんですか? 普通にコーディングしてれば出ないですよ。 UpperCaseはすべての小文字を大文字にするので、先頭だけ大文字にしたいのなら、先頭だけ抜き出してUpperCaseで大文字にしてから2文字目以降を結合すればいいのでは。

kihonkana
質問者

補足

回答ありがとうございます。 次のようにtmp_termの先頭を大文字にしようとしました。 tmp_term[1] := UpperCase(tmp_term[1]); ところが、「Charとstringには互換性がありません」というエラーが出ます。

関連するQ&A