質問: 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) で終了しました。 何がまずいのでしょうか。
回答: source.cpp(9): warning c4018: '<=' : signed と unsigned の数値を比較しようとしました。 ってことで、一応ビルドは通りましたね。 signedの変数iとunsignedのstrlen()の戻り値での比較ってことですかね。 # strlen()の戻り値はsize_tでしたが。 >if (a[i] == 'ワ'&&a[i + 1] == 'ン'){ とかはintへの暗黙の型変換でもされたかと。 まぁ、期待通りに動作しないことに変わりはありませんが。 #1にて書かれているので細かいことは書きませんけど。