关于数组维度中strlen函数的使用

c++primer书中有一段程序,在数组维度中使用了strlen函数,但在编译过程中报错(strlen不为constexper)

#include
#include
using namespace std;
int main() {
    char str1[] = "hello";
    char str2[] = "world";
    char result[strlen(str1) + strlen(str2) - 1];
    strcpy(result, str1);
    strcat(result, str2);
    cout << result << endl;
    return 0;
}

一下为报错结果

img

刚开始学,啥都不懂,麻烦大家了

加一个头文件吧,string

改成char *str1 = "hello";吧

visual studio不支持可变长度数组,数组[]里必须是常量表达式。

不支持变长的数组定义,这样改:

    const char str1[] = "hello";
    const char str2[] = "world";