Ich erstelle eine Funktion findBookID
. Wenn ich versuche, die Buch-ID in eine Ganzzahl zu konvertieren, wird mir ein Fehler angezeigt.
kann mir jemand eine lösung zur lösung geben? Grüße.
Der Fehler ist zuletzt in der Post.kann char nicht in int konvertieren, wenn atoi verwendet
strncpy(bookId, source + pos_text + 1, len_text - pos_text);
int i = atoi(bookId); //atoi converts the string to integer
if (id == i)
{
return true;
}
Hier ist, wie ich die Funktion
bool findBookId(char source[], int id)
{
char input[10] = "Book ID: ";
char bookId[5];
int int_id = 0;
int pos_search = 0;
int pos_text = 0;
int len_search = 10;
size_t len_text = strlen(source);
if (len_search < len_text)
{
for (pos_text = 0; pos_text < len_search - 1; ++pos_text)
{
if (source[pos_text] == input[pos_search])
{
++pos_search;
if (pos_search == len_search - 1)
{
// match
strncpy(bookId, source + pos_text + 1, len_text - pos_text);
int i = atoi(bookId); //atoi converts the string to integer
if (id == i){
return true;
}
}
}
else
{
pos_text -= pos_search;
pos_search = 0;
}
}
}
return false;
}
Voll Codierung für Referenz erklären: https://drive.google.com/open?id=1zHc_26kFPVHs0b99-gkX1hdQ3AYykCPL9KegI5QobdY
Dies ist die Fehlermeldung: Funktionsaufruf erlauben keinen konstanten Ausdruck
"es zeigt mir den Fehler". Was genau ist "es" und was ist "der Fehler"? Kompilierfehler? Laufzeit Fehler? Zeigen Sie den genauen Fehler an. – kaylum
Könnten Sie ein kleines verifizierbares Beispiel Ihres Codes posten? Haben Sie versucht, Ihren Code über einen Debugger auszuführen, um zu sehen, was in bookId passiert, wenn Sie atoi durchlaufen? – dvhh
Fügen Sie in Ihrem Top-Beispiel ein Beispiel 'source' 'pos_text'' len_text' hinzu. – dvhh