C++ Std string zu char umwandeln?


14.03.2022, 12:47

Fehlermeldung:

error: cannot convert '__gnu_cxx::__alloc_traits<std::allocator<std::__cxx11::basic_string<char> >, std::__cxx11::basic_string<char> >::value_type' {aka 'std::__cxx11::basic_string<char>'} to 'char' in initialization

14.03.2022, 12:52

Ich habe den Fehler gefunden: myString war ein std::string Array

2 Antworten

Bemerkung nebenbei:

Ich habe nie verstanden, warum man Stringklassen nutzt: Sie machen alles nur umständlich und weniger effizient.

Dass sie dennoch in aller Munde sind, hat nur historische Gründe: Als C++ erfunden wurde, hat man sie als Standard-Beispiel für Datenabstraktion genutzt. Ferner hat man damit demonstriert, wie Dateineingabe und Datenausgabe typsicher gemacht werden können.

TechPech1984  14.03.2022, 12:33

er fängt gerade an . bleib , mal locker . ausserdem ist da kein problem , der hat noch ganz andere sorgen , den der code funktioniert . und das war hier die frage und nciht deine belehrung

0
grtgrt  14.03.2022, 12:40
@TechPech1984

Deswegen schrieb ich ja: "Bemerkung nebenbei".

Es war auch keine Belehrung, sondern eine Feststellung (und Mitteilung von Erfahrung).

Java ist die einzige Programmiersprache, in der man Stringklassen benötigt.

0
TechPech1984  14.03.2022, 12:46
@grtgrt

doch es ist eine belherung sogar eine dekadente, den es ist die standard bibliothek . die lernt man erst und erkennt dann später vorzüge. darfst dich gerne dort beschweren wo es dir am anfang probleme bereitet hat . aber nicht generell sowas. Oder anders Gesagt, als Millionär dreht man natürlich keinen Cent um , da zahlt man mit sewinem Guten Namen und weiss gar nicht was Kleingeld ist .

klingt wie :warum nutzen denn nicht alle JQuery anstatt kompliziert raw javascript zu schreiben .

Weil man dann halt nix lernt . Grundlagen sind Grundlagen und erst später reift das wissen . Gibt egenug die es anders rum machen und dann bei grundlagen hilflos sind . Immer nur mit GUI und drag and drop gearbeite und dann sollten sie einfach mal ein CLI schreiben und wissen schon nicht wie man eine normale ausgabe bastelt ohne das sie ein Icon irgendwo hinschieben können , geschweige den eine msg box hinbekommen .

p.s. es will niemand wissen was du in deinem lehrproßess für grundlegende probleme gesehen hast . anderen hilft es didaktisch .

0
grtgrt  14.03.2022, 12:53
@TechPech1984

Du darfst es sehen, wie du willst. Der Fragesteller wird vielleicht doch schätzen, was ich ihm zu sagen versuche.

0

funktioniert bei mir

#include <iostream>
int main() {
   std::string myStr="Hallo!";
   std::cout << myStr.at(1);
   return 0;
}
oder
int main() {
    std::string myStr="Hallo!";
    char c = myStr.at(1);
    std::cout << c;
    return 0;
}

Output :
a
name123454321 
Fragesteller
 14.03.2022, 12:46

Bei mir kommt der Fehler:

error: cannot convert '__gnu_cxx::__alloc_traits<std::allocator<std::__cxx11::basic_string<char> >, std::__cxx11::basic_string<char> >::value_type' {aka 'std::__cxx11::basic_string<char>'} to 'char' in initialization
0