Dies funktioniert nicht, das erste Zeichen einer Zeile ist # und noch nicht beendet. Ich habe auch versucht 0/1/2/3/4, nur um zu sehen, ob es so komisch Anfang der Zeile Problem war, aber es ist nicht.Vergleichen von Zeichen in Zeichenfolge mit Zeiger in C
Antwort
if(&line[0] == "#"){
sollte
if(line[0] == '#'){
Sie wollen die ersten Zeichen der Zeichenfolge vergleichen und line
ist bereits ein String ist, besteht keine Notwendigkeit, die Adresse (&
) zu nehmen, verwenden auch einfache Anführungszeichen statt doppelte Anführungszeichen.
tun Statt diese
if (line[0] == '#') // Note the single quotes
Wenn Sie die Adresse nehmen sicher der Vergleich falsch ist unabhängig davon, welche Zeichen bei line[0]
weil Sie Adressen vergleichen und Sie können sicher sein, dass sie anders sein wird. Sie müssen stattdessen die Werte vergleichen.
Wenn Sie eine Warnung sehen, bedeutet das normalerweise, dass etwas nicht stimmt. Wenn Sie eine Warnung sehen und dennoch nichts falsch ist, haben Sie sicherlich eine solche Warnung erwartet. Wenn die Warnung unerwartet ist, haben Sie etwas Schlechtes getan.
&line[0]
ist die gleiche wie line
so sind die Adresse von line
verglichen werden, die einen Zeiger auf die Adresse des Stringliteral "#"
ist, die mit aller Sicherheit nicht gleich ist.
Ich habe das versucht, es funktioniert auch nicht, und ich bekomme eine Warnung "main.c: 63: 30: Warnung: Vergleich zwischen Zeiger und Integer" –
@asdqq Bitte nicht die Hochkomma, "#" und aktivieren Kompilierungswarnungen. Sie entweder 1. Ich habe das nicht versucht! 2. Ihre Eingabe hat kein '#' als erstes Zeichen. –
Ah, danke, dass und die Verwendung von # anstelle von "#" löste mein Problem. Das Problem war mit dem '&', ich habe nicht bemerkt, dass du das auch geändert hast, mein Schlechter! –
&line
bedeutet, dass die Adresse der Zeile, Sie seinen Wert wollen und deshalb verwenden:
line[0] == '#'
- 1. Zeichen in Zeichenfolge in Java vergleichen?
- 2. Vergleichen einer Zeichenfolge mit einem Zeichen in C++
- 3. c char Zeiger vergleichen
- 4. Ausgabeposition von Zeiger in Zeichenfolge C++
- 5. Vergleichen von Zeichen Literal mit Std :: String in C++
- 6. Wie Zeiger auf Zeichenfolgen in C vergleichen
- 7. sscanf Umwicklungsfunktion Zeichenfolge Zeiger in C
- 8. Vergleichen Zeichenfolge in R
- 9. Initialisiere Zeichen Zeiger-Array in C
- 10. macht einen Zeiger auf ein Array von Zeichen in c
- 11. C mit einem Zeiger auf eine Zeichenfolge in einer Funktion
- 12. Vergleichen und Konvertieren von Emoji-Zeichen in C#
- 13. Zählfrequenz von Zeichen in einer Zeichenfolge C++
- 14. C++ von 1 Zeichen in Zeichenfolge konvertieren?
- 15. Optarg Zeichenfolge vergleichen C
- 16. % Zeichen in Zeichenfolge Ziel c
- 17. Versuche, Zeichen in C zu vergleichen #
- 18. Problem mit Vergleichen von Zeichenfolgen in C
- 19. Vergleichen einer Zeichenfolge mit einer Liste von Zeichen
- 20. Vergleichen von Zeichen eines Arrays mit einer Zeichenfolge
- 21. Vergleichen bestimmter Inhalte einer Zeichenfolge in C
- 22. String Array Zeiger in C vorbei nur ein Zeichen
- 23. String.at() nicht mit Zeichen vergleichen
- 24. Vergleichen von zwei Zeichen in Java
- 25. Anzahl der Wiederholungen von Zeichen in Zeichenfolge in c berechnen #
- 26. Zeichenfolge in Array von Zeichen in C++ teilen
- 27. Vergleichen von Zeichen (ARM Assembly)
- 28. Vergleichen von Unicode-Zeichen in Junit
- 29. C++ Bildverarbeitung von Datenblöcken in Array/Zeiger
- 30. C++ Lesen einer Zeichenfolge Zeichen für Zeichen
' '#'' ist wahrscheinlich die Absicht, nicht ' "#"'. – DeiDei
Ich habe das versucht, es funktioniert auch nicht, und ich bekomme eine Warnung "main.c: 63: 30: Warnung: Vergleich zwischen Zeiger und Integer" –
Danke @DeiDei, dass und nicht mit "&" löste mein Problem . –