Als Teil eines größeren Programms muss ich eine Zeichenfolge von Zahlen in eine ganze Zahl (eventuell ein Float) konvertieren. Leider darf ich Casting oder Atoi nicht verwenden.Konvertieren einer Zeichenfolge von Zahlen in eine beliebige Form eines int
Ich dachte, eine einfache Bedienung entlang der Linien von dieser:
void power10combiner(string deciValue){
int result;
int MaxIndex=strlen(deciValue);
for(int i=0; MaxIndex>i;i++)
{
result+=(deciValue[i] * 10**(MaxIndex-i));
}
}
funktionieren würde. Wie konvertiere ich ein char in ein int? Ich nehme an, dass ich ASCII-Konvertierungen verwenden könnte, aber ich könnte keine Zeichen zu Ints hinzufügen (vorausgesetzt, dass die Konvertierungsmethode eine enorme if-Anweisung haben soll, die den unterschiedlichen numerischen Wert hinter jeder ASCII-Zahl zurückgibt).
Willkommen bei StackOverflow! Du sagst "nicht erlaubt". Ist es dein Chef, dein Compiler oder dein Professor, der dich einschränkt? Wenn es Ihr Professor ist, fügen Sie bitte "Hausaufgaben" -Tag zu Ihrer Frage hinzu. –
Es gibt ein paar kleinere Probleme mit Ihrem Code. Zuerst gibt es keinen '**' Operator für die Potenzierung in C++.Zweitens kann 'std :: string' nicht als Parameter für' strlen() 'verwendet werden; Sie könnten stattdessen 'decivalue.size()' verwenden. –