我有一個小程序,我已經聲明瞭兩個字符串變量。我將輸入字符串的第一個字母轉換爲大寫字母,並將第一個字符串的內容複製到第二個字符串。但是,如果我嘗試打印(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」串長度爲0,因爲你從未它調整爲字符串「n」個 – Amadeusz
的長度你真的應該在'm'上使用'at()'函數。你會立即看到錯誤。 'm.at(s)= n.at(s);' – PaulMcKenzie
要將'n'複製到'm',您只需要執行'm = n;' –