Poniższy kod odbiera błąd seg w linii 2: char *str = "string"; str[0] = 'z'; // could be also written as *str = 'z' printf("%s\n", str); Chociaż działa to doskonale: char str[] = "string"; str[0] = 'z'; printf("%s\n", str); Testowane z MSVC i
Poniższy kod odbiera błąd seg w linii 2: char *str = "string"; str[0] = 'z'; // could be also written as *str = 'z' printf("%s\n", str); Chociaż działa to doskonale: char str[] = "string"; str[0] = 'z'; printf("%s\n", str); Testowane z MSVC i
W kursie wprowadzającym do języka C nauczyłem się, że podczas przechowywania łańcuchy są przechowywane \0na końcu ze znakiem zerowym . Ale co, jeśli chciałbym wydrukować ciąg, powiedz, printf("hello")chociaż zauważyłem, że nie kończy się \0na poniższym stwierdzeniu printf("%d",...
To może być proste pytanie, ale dlaczego const char * nie potrzebuje adresu pamięci, aby wskazywać? Przykład: const char* a = "Anthony"; i nie: const char *a = // Address to const char jak inne
Rozumiem, że ciągi w C są tylko tablicami znaków. Wypróbowałem więc następujący kod, ale daje on dziwne wyniki, takie jak wyrzucanie elementów bezużytecznych lub awarie programu: #include <stdio.h> int main (void) { char str [5] = "hello"; puts(str); } Dlaczego to nie działa? Czyści...
Załóżmy, że mam następujący kod: #include <iostream> #include <string> #include <iomanip> using namespace std; // or std:: int main() { string s1{ "Apple" }; cout << boolalpha; cout << (s1 == "Apple") << endl; //true } Moje pytanie brzmi: w jaki sposób...