Przyjrzałem się funkcji "strtok2()" i wniosek mam taki, że nie nadaje się ona do Twojego programu. W funkcji "odczyt_IMEI" potrzebujesz odebrać IMEI, które jest zawarte przed napisem "OK". Możesz to zrealizować w taki sposób (przenieś do siebie tylko funkcję "odczyt_IMEI"): [syntax=c]#include <iostream> #include <string.h> using namespace...
Napisałem Ci, co źle robisz: int * dla stringów-NIE const char * Niestety nie mogę sobie poradzić z utworzeniem kolejnej tablicy dlaczego? Co stoi na przeszkodzie?
Nawet nie miałby powodu zrobić inaczej z wielu powodów. Tablica wielowymiarowa jest tak naprawdę tablicą tablic, a więc wszelkie właściwości z tym związane są nadal prawdziwe. PS. Była wzmianka o stringu. Trzymanie ich w ten sposób mija się często z optymalnym wykorzystaniem pamięci.
1. Dlaczego masz wogóle: int *newDesc a nie char* newDesc? 2. Na stringi alokuje się jeszcze miejsce na znak "\0".
Pierwszy przykład: funkcja sortuj przyjmuje 3-ci parametr typu char*, tymczasem Ty podajesz zmienną typu char[][]... itd.
A nie jest czasem tak, że tablice stringów muszą być inaczej deklarowane, żeby siedziały w PROGMEMie? Nie jest tak. Zwróć uwagę na różnicę między definicją tablicy wskaźników do stringów a definicją tablicy stringów. Tobie się właśnie to pomyliło. char *tab to nie to samo co char tab Tablica wskaźników do stringów musiałaby być inicjalizowana jak w...
Co robi ta linijka?[syntax=cpp]fflush(stdin);[/synt... Zadaj sobie również pytanie, co robi endl, którym strzelasz na lewo i prawo. ;) W ogóle to ten kod to jest mieszanka C i C++... W C++ masz takie ładne strumienie, którymi się tak różowiutko i przyjemnie pracuje z plikami, a wybierasz fopen i spółkę? ;) Później napiszę coś o samym programie, ale...
Oj chyba kolega część książki mówiącą o tablicach przekartkował. ;) [syntax=c]char we_love[] = "cookies!"; // kompilator sam obliczy rozmiar tablicy i skopiuje "cookies!" do niej. char highway_to[4] = "Hel"; // tutaj również tablica będzie kopią "Hel" const char* swiety = "Mikołaj"; // swiety to wskaźnik na const char, zawiera adres literału "Mikołaj",...
Na ATtiny kod musi być w miarę optymalny. Zapomnij o Stringach. Masz char *. Wklej kod, napisz, co chcesz osiągnąć, a ktoś pomoże.
%s jest do wyświetlania stringów (char*), a ty pakujesz tam liczby, nie dziwne, że nie działa tak jak byś chciał. 4\/3!!
Przede wszystkim wydaje mi się, że nie zdajesz sobie sprawy z tego, że w C/C++ tablice są numerowane od 0. Tak więc tablica zdeklarowan tak: char bufor[5]; Jest 5-cio elementową tablicą o elementach, do których możemy się tak odwołać: bufor[0]='a'; bufor[1]='z'; bufor[2]='1'; bufor[4]=NULL; Natomiast w przypadku...
#include <stdio.h> . . . unsigned char bufor [10]; unsigned char dana sprintf (bufor, "%d", dana); WriteLCD(bufor); Poczytaj o formatowaniu stringow funkcja sprintf (printf) a wszystkiego sie dowiesz: jak wyswietlac w postaci hex, jak wyswietlac float, stringi etc. pozdrawiam BF
char tab[12][12][12]; strcpy(tab[3][10], "ala ma kota");
Z racji tego, że z tablicami jest problem zmieniałem troszkę koncepcję. Czy jest możliwość mając np 3 Stringi : Tak, taka możliwośc istnieje ; te twoje stringi jak założyłeś w pytaniu; będą stałymi (z góry znane) i rezydowac w pamięci ROM. Utworzysz ‘array of arrays ’.. Jeżeli zechcesz je ‘uzmiennic’ i trzymac w RAM - to tego...
A czy on działa? ;) Nie widzę zawarcia żadnych bibliotek... W tytule pisałeś o programie w C++ a to jest chyba bardziej program w gołym C, korzystasz ze stringów char[], metody dostępu do plików też są chyba z C. Z jakich materiałów korzystałeś, tworząc ten zapis/odczyt z pliku?
Dzięki Saabotaz, zrobiłem jak napisałeś. Okazało się, że problemem był *char do ktorego ładowałem stringi zmieniłem go char[] i ruszyło. Swoją drogą dziwne :)
Jeśli nadal pytasz o C, to taki przykład powinien Ci to objaśnić: imie musi być na tyle duży by pomieścić każde ze spodziewanych imion. Po każdym kopiowaniu do bufora nadpisywane jest tylko tyle znaków ile zawiera w sobie kolejne imię, oczywiście plus jedne znak 0, bo to są stringi.
jeśli dobrze widzę, to korzystasz z "getline" do pobrania danych z otwartego pliku, "getline" jest po pierwsze funkcją z C a nie C++, powinno się tego unikać jeśli chcemy mieć porządek w kodzie, a po drugie operuje na stringach ( co gorsza stringach char* a nie C++owych stringach ), więc z tych dwóch powodów, a zwłaszcza drugiego, trzeba ją zmienić...
Wygląda na przepełnienie stosu. Na początek wywal wszystkie stringi do FLASH, np. [syntax=c]__flash const char text[81]="ABCDEFGHIJKLMNOPRSTW" "NIE TA LINIA :( " " " "Maciek mowi: ";//PRSTUVWXYZabcdefghijklmnoprstuvwxyz1... [];'\\,./!(at)#$%^&*()`";[/syntax] i [syntax=c]snprintf_P(text, 21,PSTR( "%s%04d%02d%02d %02d:%02d:%02d "), dow, (uint16_t)time.year...
powinieneś zapoznać się z avr-libc-user-manual standrdowa funkcja do łączenia stringów: 6.20.3.11 char ∗ strcat (char ∗ dest, const char ∗ src) Concatenate two strings. The strcat() function appends the src string to the dest string overwriti acter at the end of dest, and then adds a terminating ’\0’ character. The overlap,...
Prawie dokładnie jak zapisałeś. Tylko wyświetlać masz zawartość z tablicy, a nie tekst "tablica char* tablica choc mając stałą długośc możesz po prostu zrobić tablicę dwuwymiarową c har tablica ).
Dodaj log debugowy w setupie aby sprawdzic czy nie resetuje Ci się mikrokontroler. Używałbym char[] zamiast String i porównanie stringów strcmp(). Zamiast tej ściany if-else wrzuciłbym komendy do jakiejś tablicy structów. Gdzie struct zawierałby dwa pola on i off które wskazują na komendy. Indeks tablicy wskazywałby który elektromagnes właczasz/wyłączasz....
Po pierwsze: w GLCD nie ma funkcji wyświetlającej zmienne. Są tylko wyświetlające stringi (zresztą tez do poprawki, bo rzucają warningami o konwersji typów uint/chr). [syntax=c] int temperatura; char napis[6]; sprintf(napis, "Temperatura: %d", temperatura); GUI_Text(0,0,napis,Black,White); [/syntax]
Ktoś robie inspekcjie paneli (stringi) na falownikach SofarSolar przez charakterystyką prądowo-napięciową? Przykladowo, inspekcja PV paneli w Huawei można robić przez FusionSolar albo przez webinterface loggera.
Masz znaki specjalne w stringu(\n może też \r) i pewnie dlatego nie działa. Spróbuj tak: [syntax=c] char c = serverClients[i].read(); if(c >= ' ') { command += String(c); } if(c == '\n') { Serial.print("\tRecived: "); Serial.println(command); //TO DZIAŁA! if(command =="info") { [/syntax]
Trochę mylisz pojęcia. string imie[15] to 15 elementowa tablica stringów (czyli taka tablica na 15ście wyrazów). A tablica char imie #include <iostream> using namespace std; int main() { char imie[15]; cout<<"Wpisz imie: "; cin >> imie; char znak_konca= '\0'; //sprawdzenie czy kuba? if(imie[0]=='k'...
To jest właśnie jak się uczy "na kodach" z sieci i YouTube i się wszystko płacze stringi C++ z char * . Trzeba poczytać trochę o podstawach programowania w C++
A czy jesteś pewny, że nazwa jest za każdym razem oddzielnym obiektem? String też jest klasą i pola tego typu to referencję. Może masz rożne obiekty Food, ale wszytkie są powiązane do jednego napisu. Deklaracja String l_00 = "" nie tworzy nowego obiektu, tylko przypisuje referencję do statycznego obiektu. Z drugiej strony w Javie Stringi są 'niemodyfikowalne'...
Mogę błysnąć :) Znalazłem rozwiązanie problemu. Wykorzystałem jedną z ciekawych właściwości CCS, mianowicie możliwość deklaracji takich tablic: const char tab[][*] = {"AAA", "BBB"... } Teraz chcąc porównać odebrany z uart ciąg z jakimś stringiem robie to tak: #define AAA 0 #define BBB 1 switch (szukaj(bufer))...
To po co mieszasz z typami stringów? Stosuj je konsekwentnie, to nie będzie problemów. Windows ma dla wygody odrębne funkcje do różnych typów stringów - stosuj te właściwe, dla zwykłych char* to są z A na końcu. A jak koniecznie chcesz mieć w programie inne typy stringów (po co?), to w tych linkach, które podałem, są wskazówki, jak to robić.
Arduino ESP polega na prekompilacie z którego nie ma możliwości wycięcia nieuzywanych funkcjonalności, dlatego część flasha i ramu z zasady tracimy, tu faktycznie jest zonk. Za to w C mniej wiecej wiesz ile pamieci program ma do dyspozycji, tutaj lua potrafi sie nagle wykaszanic i nie bardzo wiadomo czemu, co sie stało i dlaczego? Zapisze to co jest...
Chodzi o deklarację zmiennej data W tym przypadku wystarczy, że bufor data zadeklarujesz jako static. Masz tu jeszcze kilka błędów. Funkcja receive zwraca char a Ty próbujesz zwrócić char *. Dodatkowo w main próbujesz przypisać to co zwraca receive do tablicy buffer (co sie nie powinno skompilować). Spróbuj tak: [syntax=c] static const unsigned char*...
Pierwszy parametr makra DnsQuery jest typu TCHAR* a właściwe funkcje to DnsQuery_A, DnsQuery_W, DnsQuery_UTF8. Jeżeli nazwę hosta masz w char[] (ale nie UTF8 ) to użyj DnsQuery_A. Jawne castowanie stringa na wstring nie jest możliwe w C, bo nie obsługuje on stringów natywnie. A skoro parametry pobierasz z linii poleceń (funkcja _tmain), to od razu masz...
bez gwiazdek char *napis[10] = {"HELLO"}; -> to jakies ufo - wskaznik na tablice ewentualnie tablica wskaznikow [; powinno byc: char napis[]="HELLO"; LCD_WyslijLitery(*napis); -> kolejne ufo (podstawy c), do funkcji powinienes przekazac adres pierwszego elementu, a tak sie sklada, ze nazwa tablicy jest wskaznikiem na pierwszy element, czyli: LCD_WyslijLitery(napis);...
To ja nie rozumiem jaki masz problem. Arduino to C++ to po prostu łaczysz te stringi w jeden. String i char[] lub char* to są zupelnie inne typy. W dalszym ciagu nie rozumiem w czym problem.
Liczba: 8002930403 ma 10 cyfr, wiec raczej będziesz potrzebował bufora znaków (char *) o długości o jeden większego, by na ostatnim miejscu umieścić 0. Jednak liczba 20 000 000 000 ma 11 cyfr, więc buffor możesz odrazy zrobić na 12 znaków. Następnie możliwe że tracisz dokładność w wyniku działania tych trzech operacji: (12000000000/4095)*data.ctrl....
struct wezel *iter = pierwszy; while(iter) { iter = iter->nastepny; } to na pewno nie zadziała poprawnie. przejdzie przez wszystkie elementy, ale po takiej pętli iter zawsze będzie równy NULL. co do tego: Lista l; l+="zabawa"; co do tego to na oko bez kompilowania wydaje mi się że skoro "zabawa" jest typu const char*...
z tego co zrozumialem to muszą być wprowadzane i zapamiętywane jako stringi ( lub w c jako char* ).
Prowadzący sugerował, że łatwiej zrealizować jego polecenie na stringach, a nie na charach. Wszyscy, którzy na zajęciach zaczynali z charem dostawali opieprz :DD - T.Jeleniewski PWr
Przyjrzyj się dokładnie temu co napisałem - właśnie do separowania parametrów się doskonale nadaje. Skrócenie łańcuch następuje niejako samoczynnie - nie potrzeba dodatkowej pamięci kopiowania Ogólnie: zapis char t[]="abcde" oznacza tablicę 6 elementową (5 liter + 0) przy czym t z definicji wskazuje pierwszy znak (a) w związku z tym t+2 wskazuje 3 znak...
Witam! Jak zmienić poniższy zapis, aby w najprostszy sposób uzyskać 3 tablice wskaźników na 6 różnych stringów? Dla poniższego przykładu kompilator tworzy dwa stringi ("wyl" i "buf") i w do każdej tablicy wpisuje wskaźniki na te same stringi. [syntax=c] char *sOut1[] = { "wyl ", "off " }; char *sOut2[] = { "wyl ", "off " }; char *sOut3[] = { "wyl ",...
Po co łączyc jak można wysyłać na bieżąco ( szkoda pamięci). println chyba moze wysłać stringa (nie trzeba char*).
Sorki nie zauwazylem ze to progmem. Pointery w progmem nie istnieja w sposób tak rozumiany jak w normalnej pamieci - tak ze tak łatwo nie bedzie. [syntax=c]#define BUFFLEN 18 char __buff[BUFFLEN]; strncpy_P(__buff, (const char *)pgm_read_word(&(ptr_to_text[0])), BUFFLEN - 1); __buff[BUFFLEN -1 ] = 0;[/syntax] i dopiero mozesz wolac swoja funkcje cos...
Przy okazji pytanie, czy każda operacja na stringach wymaga a by dany string był zakończony znakiem '\'? W języku C string to tablica znaków zakończona "null terminating character" którym jest "(char)0" albo inaczej zapisany '\0`. Wszystkie funkcje operujące na stringach wymagają aby ich parametry były C stringami (z małymi wyjątkami np strncpy) sizeof("1234")...
Dziwne zachowania = mało RAM lub "jazda" po pamięci (nadpisywanie tablic, stringów). Ile znaków zarezerwowałeś na stringi (npGodzina) a ile one zajmują?
czyli cos w stylu: no właśnie żaden z tych ;) Ja Ci radziłem inaczej, nie operuj na stringach tylko na char`ze, 1. czytaj char z pliku 2. jesli < to ustaw znacznik 3. jesli > to kasu znacznik 4. jesli nie ma znacznika to wyslij znak do pliku wyjsciowego 5. jesli nie koniec pliku to skocz do 1.
W zasadzie tak nie należy robić. Dwie gwiazdki obok siebie to już jest podejrzane, a le trzy.... ;) Ale jeżeli chodzi tylko o gimnastykę z językiem C, to trzeba to zrobić tak: Dodano po 28 Tak, taka jest składania. Zmienna tablica wewnątrz funkcji funkcja() jest wskaźnikiem na zmienną tablica z funkcji main() . Trochę mylące jest użycie tej samej nazwy...
Przy założeniu że char== bajt Na urządzeniach pewnie tak, ale na Windowsie / w internecie nie koniecznie, zależy skąd te Stringi pochodzą
W linkach które podeslales nie ma nic o c_stringach. Wiedza ktora tam jest opisana jest podstawowa i ja posiadam. Masz rację wiedza ta jest podstawowa, aczkolwiek jej nie posiadasz.C-string jest to po prostu tablica znaków char , która reprezentuje ciąg znaków. [url=https://www.youtube.com/watch?v=ZGt... jest to w miarę dobrze opisane. Ostatnio...
[syntax=cpp]element.imie_nazwisko=(konwe... Prawdopodobnie chciałeś stworzyć nowe stringi, ale tego tak się nie robi. Użyłeś właśnie operatora „przecinka” (nawet mimo tego, że są tam nawiasy). To co jest powyżej ma taki sens: do element.imie_nazwisko przypisz rozmiar wskaźnika (czyli...
chara stringi chara const chara chara const chara konwersja
awaria ekspresu philips kontrast jasność atmega32 diody
bateria niteo kabel brake radio
Bezpiecznik świateł stopu w MAN TGL - lokalizacja Toshiba 43QA4263DG - Czerwona dioda, brak reakcji