XORing两个字符串输出空字符串

XORing two strings outputs blank string

本文关键字:字符串 输出 两个 XORing      更新时间:2023-10-16

违规代码

string foo(string a, string k) {
   string output;
   for (int i = 0; i < a.size(); i++) {
      output[i] = a[i] ^ k[i]; 
   }
   return output;
}

string output;创建一个空字符串。选择output[i]会导致访问超出字符串边界的未定义行为。

Add in first:

output.resize( a.size() );

还要考虑检查if ( k.size() < a.size() ) throw .....