如何在字符串中搜索C++

问题描述:

我输入了一个字符串类型的句子。如何在字符串中搜索C++

std::string message; 
std::getline(std::cin, message); 

进入了一句后,我使用if语句字符串为“莫尔斯电码”转换:

int length = message.length(); 
for(int i = 0; i < length;i++) //to loop in the message 
{ 
    if(message[i] == 'A') 
     cout << "-.";//and the rest for 'b','c','d'....'z' 
} 

如何参加输入的字符串的莫尔斯电码和解码。例如: 如果莫尔斯电码中的“.-”显示'A',并且信息显示'B'中显示“-...”。

+0

正则表达式将是最聪明的方式.. – cybertextron 2012-08-11 18:29:28

+0

你将不得不手动遍历字符串,搜索子字符串可能匹配一些它属于一个不同的字母 – Gir 2012-08-11 18:32:33

+0

莫尔斯的“字符”之间有空格串?我认为没有任何 – Gir 2012-08-11 18:38:59

以这种方式使用二叉树 - 根是空的(NULL)。 每个孩子都有一个字符“ - ”。 。 这样你就可以将洞莫尔斯码解码到树中。 现在,而不是放在最后的NULL,把你应该得到的字符结尾。 树看起来应该是:

 
           root 
          / \ 
           '-' '.' 
           \ 
           '.' 
            \ 
            'A' 

等 现在你能找到为O字符(LG N)树当n =大小。

+0

也可以用LUT来完成,但是必须将字符串转换为位串,' - '= 1和。='0' – Gir 2012-08-11 18:43:29

+1

对于图中的4个面。 – iKlsR 2012-08-11 19:18:32