Devo trovare se un array di caratteri inizia con "ADD". So usare strcmp(), ma non so come ottenere i primi tre caratteri. Odio davvero lavorare con c-stringhe. Come posso prendere una porzione di un array di caratteri come char buffer[1024]?
Come posso tagliare una stringa in C?
8
A
risposta
9
Utilizzare strncmp("ADD", buffer, 3)
.
Non sono sicuro di cosa intendi per "slice" ma qualsiasi puntatore all'interno di buffer
potrebbe essere considerato una porzione. Ad esempio se buffer
è una stringa che inizia con "ADD"
quindi char *slice = buffer + 3
è la stessa stringa con "ADD"
rimossa. Nota che slice
è quindi una parte di buffer
e la modifica del contenuto di slice
modificherà il contenuto di buffer
. E viceversa.
Se per "slice" si intende una copia indipendente, è necessario allocare un nuovo blocco di memoria e copiare le parti interessanti da buffer
nella memoria. Le funzioni della libreria strdup
e strndup
sono utili per questo.
8
Usa strncmp .Assuming buffer è la variabile di testare, basta
strncmp (buffer,"ADD",3);
Problemi correlati
- 1. Tagliare una stringa in C
- 2. Come posso tagliare la sottostringa da una stringa in tcl
- 3. Python - Come tagliare una stringa in Python?
- 4. Come tagliare una stringa utilizzando un delimitatore
- 5. tagliare parte di una stringa
- 6. Tagliare una stringa dopo una determinata frase?
- 7. Come posso rilevare "_" in una stringa C++?
- 8. Come tagliare una stringa ad un numero desiderato in delphi?
- 9. Come posso tagliare una forma dentro un'altra?
- 10. Come faccio a tagliare() una stringa in angularjs?
- 11. Backbone - Come posso tagliare una collezione?
- 12. Come posso tagliare OrientDB?
- 13. Come tagliare le parole specificate dalla stringa
- 14. Come posso tagliare tutti gli elementi in una lista?
- 15. Come posso ottenere una parte di una stringa in C++?
- 16. tagliare una stringa in più righe in bash
- 17. Posso "moltiplicare" una stringa (in C#)?
- 18. Come tagliare l'ultimo campo da una stringa shell
- 19. Il modo migliore per tagliare gli spazi in una stringa
- 20. Qual è il modo più semplice in C# per tagliare una nuova riga da una stringa?
- 21. Come posso analizzare una stringa in formato C in Python?
- 22. Come tagliare la stringa di StringBuilder?
- 23. script di shell: Come tagliare parte di una stringa
- 24. Come tagliare la stringa usando node.js?
- 25. Come tagliare la stringa con Entity Framework?
- 26. Come posso decifrare una stringa usando l'algoritmo AES in C#?
- 27. Come posso convertire un percorso Unicode in una stringa c?
- 28. Come posso ottenere i bit da una stringa in C#?
- 29. Come posso creare un'istanza da una stringa in C#?
- 30. Come posso creare una stringa di spazi vuoti in C++?
Come si potrebbe specificare un offset e una fine che è più corta della sequenza di char originale? Come "ciao" + 1 taglia 3 (quindi "ell"); Questo è ciò che si intende per fetta credo. Fortunatamente strncmp e printf offrono opzioni per lavorare con questo, ma sarebbe bello mostrarlo come una sequenza di caratteri – scape
@scape Vedi [Come estrarre una sottostringa da una stringa in C?] (Https://stackoverflow.com/questions/19555434) – kmkaplan
"strtok in genere sostituisce i delimitatori con" \ 0 "poiché" mangia "l'input." che ovviamente ha alcuni inconvenienti. – scape