2010-07-11 4 views
38

Einfache Frage (in C++):Konvertieren Sie ein einzelnes Zeichen in eine Zeichenfolge?

Wie konvertiere ich ein Zeichen in eine Zeichenfolge. Also zum Beispiel habe ich eine Zeichenfolge str = "abc";

Und ich möchte den ersten Buchstaben extrahieren, aber ich will es eine Zeichenfolge sein im Gegensatz zu einem Zeichen.

Ich versuchte

string firstLetter = str[0] + ""; 

und

string firstLetter = & str[0]; 

Weder Werke. Ideen?

+1

Es wäre gut, die Programmiersprache Sie verwenden zu wissen. – Rab

Antwort

54

Aus der Spitze von meinem Kopf, wenn Sie mit STL dies dann tun:

+0

Ich habe das verwendet und es funktioniert, danke! – MLP

+0

Beachten Sie, dass "std :: string" nicht von dem Teil der Standardbibliothek stammt, der von der STL abgeleitet wurde. – sbi

+1

Hinzufügen dieses Kommentars, um zu klären, was die Syntax angibt. Das sagt im Grunde, _ ** "Ich möchte eine' string' namens 'firstLetter', die' 1' Zeichen beginnt, beginnend mit 'str's ersten (' [0] ') Element." ** _ http: // en .cppreference.com/w/cpp/string/basic_string/basic_string –

18

Sie können das std::string(size_t , char) Konstruktor:

string firstletter(1, str[0]); 

oder könnten Sie verwenden string::substr():

string firstletter2(str.substr(0, 1)); 
+2

+1: die einfachsten und besten Wege – rubenvb

2

Zeichenfolge firstletter (str.begin(), str.begin() + 1);

5

1) Unter Verwendung std::stringstream

std::string str="abc",r; 
    std::stringstream s; 
    s<<str[0]; 
    s>>r; 
    std::cout<<r; 

2) Unter Verwendung string (size_t n, char c);constructor

std::string str="abc"; 
    string r(1, str[0]); 

3) Unter Verwendung substr()

string r(str.substr(0, 1)); 
+0

Das funktioniert auch: 'string r (& str [0], 1);' oder 'string r (str.c_str(), 1);' –

3

Verwendung string::substr.

Im folgenden Beispiel ist f die Zeichenkette mit 1 Zeichen nach dem Offset 0 in foo (mit anderen Worten das erste Zeichen).

string foo = "foo"; 
string f = foo.substr(0, 1); 

cout << foo << endl; // "foo" 
cout << f << endl; // "f" 
3
char characterVariable = 'z'; 
string cToS(1, characterVariable); 

//cToS is now a string with the value of "z" 
2
string s; 
char a='c'; 
s+=a; //now s is "c" 

oder

char a='c'; 
string s(a); //now s is "c" 
+0

which stimmt mit diesem Code nicht? –

+0

Ich denke, meine Lösung ist richtig, weiß nicht, warum ich eine -1 bekam. –

+0

Es hat für mich funktioniert, daher frage ich mich genauso. –