2013-12-09 222 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