Что не так с этим кодом? вход всегда имеет длину 4 в моем функциональном тесте, независимо от того, действительно ли моя строка больше или короче.C++, строка в функции всегда имеет одинаковую длину
#include <iostream>
#include <string>
using namespace std;
void test(char arr[]){
string input;
input = arr[0];
for (int i=1; i<sizeof(arr)/sizeof(char); i++){input=input+arr[i];}
cout << input << endl;
cout << "length: " << input.length() << endl;
}
int main(){
string input;
cout << "String: " << endl;
getline(cin, input);
char arr[input.length()];
for(int i=0; i<input.length(); i++) {arr[i] = input[i];}
test(arr);
}
Почему нижний предел? – Christian
вход = вход + arr [i]; не уверен, можете ли вы это сделать. Вы можете конкатенировать строки, но не массивы символов – Nick
char arr [input.length()]; ? Код не будет компилироваться в этой строке. – Matt