Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
works:programmer:cpp:c-strtextafter [2026/08/10 10:12] Eugeneworks:programmer:cpp:c-strtextafter [2026/08/10 10:24] (текущий) Eugene
Строка 6: Строка 6:
 #include <string.h> #include <string.h>
 #include <stdbool.h> #include <stdbool.h>
- 
-/** Cтарая версия с избыточной итерацией по символам // 
-bool strtextafter(const char *haystack, const char *needle, char **result) { 
-    size_t hlen = strlen(haystack); 
-    size_t nlen = strlen(needle); 
-    *result = NULL; 
-    if (nlen > hlen) { 
-        return false; 
-    } 
-    if (strncmp(haystack, needle, nlen) != 0) { 
-        return false; 
-    } 
-    *result = (char *) malloc((hlen - nlen + 1) * sizeof(char)); 
-    if (*result == NULL) { 
-        return false; 
-    } 
-    haystack += nlen; 
-    char *dest = *result; 
-    while (*haystack) { 
-        *dest++ = *haystack++; 
-    } 
-    *dest = '\0'; 
-    return true; 
-} 
-*/ 
  
 bool strtextafter(const char *haystack, const char *needle, char **result) { bool strtextafter(const char *haystack, const char *needle, char **result) {
Строка 58: Строка 33:
         free(result);         free(result);
     } else {     } else {
-        printf("No matches!");+        printf("No matches!\n");
     }     }
     return 0;     return 0;
 } }
 +
 +/** Cтарая версия с избыточной итерацией по символам strlen и stricmp
 +bool strtextafter(const char *haystack, const char *needle, char **result) {
 +    size_t hlen = strlen(haystack);
 +    size_t nlen = strlen(needle);
 +    *result = NULL;
 +    if (nlen > hlen) {
 +        return false;
 +    }
 +    if (strncmp(haystack, needle, nlen) != 0) {
 +        return false;
 +    }
 +    *result = (char *) malloc((hlen - nlen + 1) * sizeof(char));
 +    if (*result == NULL) {
 +        return false;
 +    }
 +    haystack += nlen;
 +    char *dest = *result;
 +    while (*haystack) {
 +        *dest++ = *haystack++;
 +    }
 +    *dest = '\0';
 +    return true;
 +}
 +*/
 </code> </code>
  • works/programmer/cpp/c-strtextafter.txt
  • Последнее изменение: 2026/08/10 10:24
  • Eugene