【发布时间】:2015-06-12 08:43:03
【问题描述】:
出于某种原因,我试图将 C++ 字符串转换为 char 数组。以下是我所做的:
string aS="hello world";
char aC[aS.size()];
strcpy(aC, aS.c_str());
cout << aC[0] << endl;
string bS="veooci m eode owtwolwwwwtwwj mooawee mdeeme eeeec eme aemmeledmll llllleolclclcmslococecewaccocmelaeaccoaaooojutmjooooocoemoooealm omjcdmcmkemmdemmmiwecmcmteeeote eoeeeem ecc e yolc e w dtoooojttttmtwtt ttjcttoowl otdooco ko mooooo aowmemm o et jmc cmlctmmcccjcccecomatocooccoeoclooomoecwooo mcdoo dcdco dddooedoemod eddeedoedje emadleweemeeedeeeec or o m wejeetoj o ojjjlwdjjjj mjmceaeoaai laaadoaa aetmotaemmj mmmmmmlmm cmol c mwoaoe omav";
char bC[bS.size()];
strcpy(bC, bS.c_str());
cout << aC[0] << endl;
第一次调用 aC[0] 时,它按预期给出了“h”。但是,当第二次调用 aC[0] 时,它给出了 ''。有人可以解释一下这里发生了什么吗?
【问题讨论】:
-
char aC[aS.size()];不是标准 C++(数组维度需要是常量表达式,您可以使用new代替)。