我有一个小程序,我已经声明了两个字符串变量。我将输入字符串的第一个字母转换为大写字母,并将第一个字符串的内容复制到第二个字符串。但是,如果我尝试打印(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;' –