アプリ版:「スタンプのみでお礼する」機能のリリースについて

#include<iostream>
using namespace std;
int main()
{
int i = 0;
char a[128];
cout << "やあ" << endl;
cin >> a;
while (i<= strlen(a)){
if (a[i] == 'ワ'&&a[i + 1] == 'ン'){
cout << "ニャア";
i = i + 2;
}
else if (a[i] == 'わ'&&a[i + 1] == 'ん'){
cout << "にゃあ";
i = i + 2;
}
else{
cout << a[i];
i++;
}
}

return 0;

}
キーボードから入力された文字に「ワン」「わん」があれば「ニャア」「にゃあ」と言い換えるプログラムを組もうとしたのですが、デバックするとエラーが出ます。
'Project2.exe' (Win32): 'C:\Users\kazuaki\Documents\Visual Studio 2013\Projects\Project2\Debug\Project2.exe' が読み込まれました。シンボルが読み込まれました。
'Project2.exe' (Win32): 'C:\Windows\System32\ntdll.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Project2.exe' (Win32): 'C:\Windows\System32\kernel32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Project2.exe' (Win32): 'C:\Windows\System32\KernelBase.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Project2.exe' (Win32): 'C:\Windows\System32\msvcp120d.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'Project2.exe' (Win32): 'C:\Windows\System32\msvcr120d.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
プログラム '[5180] Project2.exe' はコード 0 (0x0) で終了しました。
何がまずいのでしょうか。

A 回答 (3件)

source.cpp(9): warning C4018: '<=' : signed と unsigned の数値を比較しようとしました。


ってことで、一応ビルドは通りましたね。
signedの変数iとunsignedのstrlen()の戻り値での比較ってことですかね。
# strlen()の戻り値はsize_tでしたが。

>if (a[i] == 'ワ'&&a[i + 1] == 'ン'){
とかはintへの暗黙の型変換でもされたかと。

まぁ、期待通りに動作しないことに変わりはありませんが。
#1にて書かれているので細かいことは書きませんけど。
    • good
    • 1

本当にこのプログラムなんだとしたら, そもそもコンパイルできないのでは.

    • good
    • 0

charは1バイトまでしか文字が入りません。


よって、char1つで漢字やカナを表わすことはできません

よって
a[i] == 'ワ'&&a[i + 1] == 'ン'
はほぼ確実に成り立ちません。



あと
> PDB ファイルを開けないか、ファイルが見つかりません。
これは、デバッグ時に、元のソースコードの情報を読み出そうとしてが見つからない、ということですが
通常、配布されていたりOSの付属していたりするDLL等は、デバッグ情報を削除してあり、読めないのが通常です。
よって、このメッセージは無視していいです
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!