Q&A
実現したいこと
ここに実現したいことを箇条書きで書いてください。
- string で変数に代入した大文字の文字列を出力したい。
前提
ここに質問の内容を詳しく書いてください.
・文字列を大文字にして出力しようと思って試したところ{stringで変数に空文字のままで、ある文字列の大文字をfor文を用いて、代入したとき}・・・(1)と、{最初に変数に大文字にする前のある文字列を代入したあとに、その文字列の大文字をfor文を用いて、代入したとき}・・・(2)の2通りで出力される文字列が両方とも同じ大文字の文字列になると思ったところ異なり、なぜ異なるのかがわかりません。配列の番号を直接指定した際には(1)と(2)の両方とも同じ大文字の文字列が出力されるのですが、配列の番号を指定をしないと同じ文字列をfor文を用いて、代入したにも関わらず、(1)では空文字もままで(2)では目的の文字列の大文字が出力されています。原因は最初に文字列を代入するかどうかだと思ったのですが、なぜ最初に文字列を代入をするか、文字列の配列の番号を直接指定しなければ、大文字の文字列が出力されないのかがわかりません。
よろしくお願いいたします。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
#include <iostream> #include<string> using namespace std; int main(){ //tが空文字のとき・・・(1) string t,s="string"; for(int i=0;i<s.size();i++){ t[i]=toupper(s[i]); } cout<<t<<endl; for(int i=0;i<6;i++){ cout<<t[i]; } cout<<endl; //ここから同じ処理で //最初にuにも”string"を代入したとき・・・(2) string u,v="string"; u=v; for(int i=0;i<v.size();i++){ u[i]=toupper(v[i]); } cout<<u<<endl; for(int i=0;i<6;i++){ cout<<u[i]; } return 0; }
試したこと
当該のソースコードにあるようにstringの文字列を空文字のままと、ある文字列を代入した時とを比較した。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2023/03/26 13:46
2023/03/26 14:28
2023/03/27 01:50
2023/03/27 01:52
2023/03/27 08:30
2023/03/27 10:01
2023/03/27 11:40