私は2つの文字列変数を宣言した小さなプログラムを持っています。入力した文字列の最初の文字を大文字に変換し、最初の文字列の内容を2番目の文字列にコピーします。しかし、(m文字列の)内容を印刷しようとすると、プログラムは何も印刷しません。なぜそれが起こるのか教えていただけますか?文字列をC++の別の文字列にコピーして文字を出力しますか?
#include <iostream>
#include <string.h>
string n, m;
int main()
{
cin >> n;
char first_letter = n.at(0);
char f = toupper(first_letter);
n[0] = f;
for(int s = 0; s < n.length(); s++) {
m[s] = n.at(s);
}
for(int p = 0; p < m.length(); p++) {
cout << m[p] << endl;
}
}
「はM」文字列の長さは、文字列「N」 – Amadeusz
の長さにリサイズしたことがないので、0でありますあなたは本当に 'm 'に' at() '関数を使っていたはずです。あなたはすぐにエラーを見たでしょう。 'm.at(s)= n.at(s);' – PaulMcKenzie
'm'に' m'をコピーするには、 'm = n;' –