0

尽管我已经完成了一些简单的任务等,但我在编码方面有些新手。我在这个小项目上遇到了麻烦。我想让代码for循环,搜索数组的每个元素,检查每个元素中的字符。如果元素等于某个字母,则播放与该字母对应的声音文件。

#include <windows.h>
#include <mmsystem.h>
#pragma comment(lib, "winmm32.lib")
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{    
    string myArray[] = {"a", "b", "c", "d", "e", "f", "g"};
    for(int i = 0; i < (sizeof(myArray)/sizeof(*myArray));i++) {
            if(myArray[i].find("a")) {
            cout << myArray[i] << endl;
            PlaySound("C:\\Users\\victor.leese\\Desktop\\a.wav", NULL, SND_SYNC);

            }     

}
    system("PAUSE");
    return EXIT_SUCCESS;
}

问题是,当我执行代码时,在if语句中,元素是i,它不打印“a”,而是打印其他6个字母,并多次播放A声音文件。我理解它并希望它工作的方式是它应该只在开始时打印一次“a”,并且只播放一次声音文件。

我意识到可能有一个非常简单的解决方案或我忘记的东西。感谢您的任何意见。

4

1 回答 1

0

更改此声明

if(myArray[i].find("a")) 

if(myArray[i].find("a") != std::string::npos ) 
于 2013-11-14T23:24:33.890 回答