Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Jak dodać coś do char [C]

poczatkujacyavr
-
-
Posty: 45
Rejestracja: 26 mar 2009, o 18:20
Lokalizacja: Kraków

Jak dodać coś do char [C]

Postautor: poczatkujacyavr » 19 gru 2010, o 10:24

Witam,

mam taką zmienną:

Kod: Zaznacz cały

char zmienna[12]
Potem przyjmuje jakąś wartość.
Czy da się w jakiś sposób dodać do niej znak chr(3)?
Np zmienna="cos"
i teraz na samym końcu przed dalszą obróbką chciałbym dodać do niej chr(3)

Gdy wpisuję

Kod: Zaznacz cały

zmienna = zmienna + "A";
to nie działa. W tym wypadku chciałem akurat dodać literkę A

Dziękuję.

Awatar użytkownika
Darlington
-
-
Posty: 574
Rejestracja: 12 lis 2007, o 18:18
Lokalizacja: stąd!

Postautor: Darlington » 19 gru 2010, o 10:59

Pojedyncze znaki dodawało się pojedynczymi apostrofami (np. 'A') a nie cudzysłowami ("A"). Spróbuj i napisz czy pomogło.
W cudzysłowie podajesz całe ciągi znaków (co najmniej 2 znaki - czyli tzw. string).

Polecam "Symfonia C++ Standard" Jerzego Grębosza, co prawda jest to książka o C++ a nie o C ale nie musisz czytać rozdziałów związanych z obiektowością itp. Podstawy (warunki, funkcje itp) są identyczne dla C i C++ no może zamiast printf() będziesz miał cout << ale poza tym to to samo więc polecam.

poczatkujacyavr
-
-
Posty: 45
Rejestracja: 26 mar 2009, o 18:20
Lokalizacja: Kraków

Postautor: poczatkujacyavr » 19 gru 2010, o 12:16

Niestety też nie pomogło :(

Awatar użytkownika
Darlington
-
-
Posty: 574
Rejestracja: 12 lis 2007, o 18:18
Lokalizacja: stąd!

Postautor: Darlington » 19 gru 2010, o 12:24

No tak, ślepy jestem. Przecież tu jest konflikt typów. Ty chcesz dodać do tablicy pojedynczy znak. tak nie można. Oba argumentu muszą być tego samego typu. Jak już to do konkretnej komórki z tej tablicy możesz dodać znak.

poczatkujacyavr
-
-
Posty: 45
Rejestracja: 26 mar 2009, o 18:20
Lokalizacja: Kraków

Postautor: poczatkujacyavr » 19 gru 2010, o 13:05

Hmmm,... tylko nie bardzo wiem jak :609:

Awatar użytkownika
Darlington
-
-
Posty: 574
Rejestracja: 12 lis 2007, o 18:18
Lokalizacja: stąd!

Postautor: Darlington » 19 gru 2010, o 13:11

Pokaż cały swój kod i napisz, co chcesz osiągnąć. W tej chwili to wróżenie z fusów.

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty: 2650
Rejestracja: 24 sty 2005, o 00:39
Lokalizacja: Winny gród

Postautor: pajaczek » 19 gru 2010, o 15:39

Po pierwsze, to do tak zadeklarowanej zmiennej, w ten sposób możesz przypisać wartość tylko w momencie jej deklaracji, tzn:

Kod: Zaznacz cały

char zmienna[12] = "cos";
ale już to: wywoła błąd niezgodności typów:

Kod: Zaznacz cały

zmienna = "cos2";
do tego celu należy użyć funkcji strcpy:

Kod: Zaznacz cały

strcpy(zmienna,"cos2");
Po drugie, co to jest chr(3) :617:

A po trzecie, jeśli chcesz wstawić pojedynczy znak do stringu, to możesz to uczynić tak:

Kod: Zaznacz cały

zmienna[2]='Z';
ale musi to być przed końcem tego istniejącego stringu (przed znakiem '\0'). (bo nie będzie widoczne przy używaniu printf i podobnych).
Względnie musisz zastąpić znak '\0' tym oczekiwanym, oraz uzupełnić string o znak '\0'. BEZWZGLĘDNIE, bo możesz doprowadzić do poważnych problemów w działaniu programu, ale wówczas wygodniej jest to zrobić poprzez

Kod: Zaznacz cały

strcpy(zmienna+strlen(zmienna),"K");

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 103 gości