2016-03-26 3 views
-5
char* str1 = "5.5"; 
char* str2 = "4.4"; 
char* str3 = str1 + str2; 

Wie ändere ich die dritte Zeile des Codes, um mir die richtige Antwort 9.9 (5.5 + 4.4)?
Ich weiß nicht einmal, warum jemand versuchen würde, Zahlen mit dem Char-Typ zu manipulieren, aber mein Lehrer will es so.Was ist los mit diesem C-Code, der erfordert, dass ich mit Zahlen arbeiten, die einen Char-Variablentyp verwenden?

+0

Nein. Verwenden Sie eine andere nützliche Computersprache oder PHP. –

+0

'char * str =" was auch immer in Anführungszeichen ";' erstellt ein ** String-Literal ** im schreibgeschützten Speicher. Sie werden in diesem Fall niemals etwas hinzufügen oder subtrahieren. Außerdem addieren oder subtrahieren Sie nicht ** String-Repräsentationen ** von 'Ganzzahlen',' Floats', etc .. Sie müssen auf 'int',' float', etc .. Typen operieren. Schau dir 'strtof' oder' strtod' an. –

+1

Was war die eigentliche Frage Ihres Lehrers? –

Antwort

3

aus dem Kommentar Fortsetzung, würden Sie so etwas wie tun müssen:

#include <stdio.h> 
#include <stdlib.h> 

int main (void) { 

    char *str1 = "5.5"; 
    char *str2 = "4.4"; 
    float result = strtof (str1, NULL) + strtof (str2, NULL); 

    printf (" %s + %s = %.1f\n", str1, str2, result); 

    return 0; 
} 

Ausgabe

$ ./bin/strtofex 
5.5 + 4.4 = 9.9 

Es werden dann Möglichkeiten result zurück in eine Zeichenfolge (zB sprintf) verdeckte wenn das brauchst du.