93474


<https://atcoder.jp/contests/abc058/tasks/abc058_b>

下記コードの部分で，環境依存文字？が表示されてしまいます。  
なぜ環境依存文字？が表示されてしまうのでしょうか。  
ご教示頂けると幸いです。

[code]

    テスト値
    入力：
    xyz
    abc
    
    正解出力：xaybzc
    
    現在出力値
    xaybzc �
    
    
[/code]

[code]

    #include <bits/stdc++.h>
    
    using namespace std;
    
    int main() {
        string o, e;
        cin >> o >> e;
        
        string ans = "";
        int index = 0;
        for (int i = 1; i <= o.size() + e.size(); i++) {
            ans.push_back(o[index]);
            ans.push_back(e[index]);
            index++;
        }
        
        cout << ans << endl;
    
        return 0;
    }
    
    
[/code]

[![結果](https://i.stack.imgur.com/LoucH.png)](https://i.stack.imgur.com/LoucH.png)


CC BY-SA 4.0
2023-01-20T07:56:56.963
93472
2023-01-20T08:06:29.023
56641
question
c++
環境依存文字？が表示されてしまう。


まあ端的にはループ内で `index` が文字のないところまで進んでしまっているからゴミを拾っているだけっス。 `o[***]` の添え字は `[0 ...
o.size())` の半開区間でないといけないの、わかりますよね？今はそうなっていないです。

現コードは `UTF-8` 等のマルチバイト文字を扱おうとすると破綻します。その辺対処が必要ならもっといろいろ考えることが増えます。その辺は設問次第。


CC BY-SA 4.0
2023-01-20T08:06:29.023
93474
2023-01-20T08:06:29.023
8589
93472
answer