Wstawianie znaków do ciągu
Chcę dodać
""do
{"status": true}, aby wiersz wyglądał następująco:
"{" status ":" true "}" ... Jak mogę wstawić znaki do ciągu w określonych miejscach?Próbowałem
strncat (), ale nie mogłem uzyskać pożądanego rezultatu. Czytałem, że do tego trzeba stworzyć własną funkcję. Czy ktoś może mi pokazać przykład?
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
4 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Zauważ, że ciąg w C to
char []
, który jest tablicą znaków i ma stały rozmiar.To, co możesz zrobić, to utworzyć nową linię, która służy jako wynik, skopiować do niej pierwszą część tematu, dodać wiersz pośrodku i dodać drugą połowę tematu.
Kod wygląda mniej więcej tak,
Przykład roboczy tutaj
http://codepad.org/Z2bL5vPx
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Funkcja pobiera wskaźnik do buforu docelowego, rozmiar buforu docelowego, ciąg do wstawienia oraz lokalizację do wstawienia ciągu. Funkcja zwraca -1 w przypadku błędu, w przeciwnym razie zwraca rozmiar bufora docelowego. Jeśli bufor docelowy jest zbyt mały, aby pomieścić wstawiony ciąg, zmienia rozmiar buforu za pomocą funkcji realloc i zwraca nowy rozmiar buforu.
Użyłem memmove zamiast strncpy, ponieważ uważam, że strncpy jest niezdefiniowane, gdy źródło i miejsce docelowe nakładają się. Jest to możliwe, jeśli wstawiony wiersz jest mniejszy niż ilość przenoszonej pamięci.
Oto wyjście:
str = Hello world!
str = Hello awesome world!
str = John says Hello awesome world!
str = John says "Hello awesome world!
str = John says "Hello awesome world!"
Anonimowy użytkownik
Potwierdzenie od: