2013-12-09 175 views
-4

我有这样的功能:如何将char转换为字符串?

void map() 
{ 
    map<char, string> change; 
    string usrstr = "A APPLE AND BANANA"; 

    change['A'] = "00011"; 
    change['B'] = "11001"; 
    change['C'] = "01110"; 
    change[' '] = "$$"; 

} 

我怎么会去改变“A”中所有出现的我的字符串为“00011”与同为B,C和空间。所有的帮助是非常赞赏

P.S字符串不会总是相同

+1

如果问题是关于C++,它应被标记为'C++'独家。 – 2013-12-09 21:47:00

+2

呃,使用'replace()'方法 –

+0

replace()只适用于当你想用char替换char的时候,我想用字符串替换char。 – user3080755

回答

0

你可以和应该使用string::replace。 即使有你最近的评论。

但是这可能是你试图做:

#include <iostream> 
#include <algorithm> 
#include <iomanip> 
#include <map> 
#include <string> 


using namespace std; 


int main() 
{ 
    char temp; 

    map<char, char*> change; 

    string lol = "A APPLE AND BANANA"; 

    change['A'] = "00011"; 
    change['B'] = "11001"; 
    change['C'] = "01110"; 
    change[' '] = "$$"; 


    for (int i = 0; i < lol.length(); i++) 
    { 
     temp = lol[i]; 
     if (change[temp]) 
      cout << change[temp]; 
     else 
      cout << lol[i]; 
    } 

    cout << endl; 

    cin.get(); 
    return 0; 
} 
+0

这正是我想要做的,非常感谢 – user3080755

+0

@ user3080755好吧。 :) –

1

不知道明白:怎么样:

std::string str = "A APPLE AND BANANA"; 
std::replace(str.begin(), str.end(), "A", "00011"); 
std::replace(str.begin(), str.end(), "B", "11001"); 
... 
+0

'std :: replace'替换单个元素。而'00011'甚至不是有效的C++ ... – leemes