matematykaszkolna.pl
c++ Metis: Dziadku możesz mi wyjaśnić jak działa ten kod char *strcpy(char zdanie2[],char zdanie[]) { int i=0; while((zdanie2[i]=zdanie[i])!='\0') i++; return(zdanie2); }
9 sty 13:40
Dziadek Mróz: Formatowanie kodu: char *strcpy(char zdanie2[], char zdanie[]) { int i = 0; while ((zdanie2[i] = zdanie[i]) != '\0') i++; return (zdanie2); } zdanie2 jest zaalokowaną tablicą char, zdanie jest zaalokowaną tablicą char z jakimś tekstem Iterujemy po zdanie[i], dlaczego? Bo mamy zdanie2[i] = zdanie[i], czyli operator = oznaczający przypisanie. Przypisujemy pozycji zdanie2[i] pozycję z zdanie[i] a porównujemy zdanie[i] do końca napisu zdanie. char *zdanie = "Ala ma kota"; char *zdanie2 = (char *)malloc(32 * sizeof(strlen(zdanie))); srcpy(zdanie2, zdanie): zdanie2 | zdanie i = 0 zdanie2[0] = 'A', 'A' != '\0' → T, i++ "A" | "Ala ma kota\0" i = 1 zdanie2[1] = 'l', 'l' != '\0' → T, i++ "Al" | "Ala ma kota\0" i = 2 zdanie2[2] = 'a', 'a' != '\0' → T, i++ "Ala" | "Ala ma kota\0" i = 3 zdanie2[3] = ' ', ' ' != '\0' → T, i++ "Ala " | "Ala_ma kota\0" ... i = 10 zdanie2[10] = 'a', 'a' != '\0' → T, i++ "Ala ma kota" | "Ala ma kota\0" i = 11 zdanie2[11] = '\0', '\0' != '\0' → N "Ala ma kota\0"| "Ala ma kota\0" return (zdanie2);
9 sty 14:06
Dziadek Mróz: zamiana char *zdanie2 = (char *)malloc(32 * sizeof(strlen(zdanie))); na char *zdanie2 = (char *)malloc(sizeof(char) * strlen(zdanie));
9 sty 14:08
9 sty 14:14
Metis: Dzięki Wielkie, będę to analizował emotka
9 sty 14:18