src/cx/string.h

changeset 1221
304f4f7b37d1
parent 1193
cfa44f3f5e3b
equal deleted inserted replaced
1220:e9dfb1e92481 1221:304f4f7b37d1
981 cxstring string, 981 cxstring string,
982 cxstring suffix 982 cxstring suffix
983 ); 983 );
984 984
985 /** 985 /**
986 * Replaces a pattern in a string with another string. 986 * Replaces a string with another string.
987 * 987 *
988 * The pattern is taken literally and is no regular expression.
989 * Replaces at most @p replmax occurrences. 988 * Replaces at most @p replmax occurrences.
990 * 989 *
991 * The returned string will be allocated by @p allocator and is guaranteed 990 * The returned string will be allocated by @p allocator and is guaranteed
992 * to be zero-terminated. 991 * to be zero-terminated.
993 * 992 *
994 * If allocation fails, or the input string is empty, 993 * If allocation fails, or the input string is empty,
995 * the returned string will be empty. 994 * the returned string will be empty.
996 * 995 *
997 * @param allocator the allocator to use 996 * @param allocator the allocator to use
998 * @param str the string where replacements should be applied 997 * @param str the string where replacements should be applied
999 * @param pattern the pattern to search for 998 * @param search the string to search for
1000 * @param replacement the replacement string 999 * @param replacement the replacement string
1001 * @param replmax maximum number of replacements 1000 * @param replmax maximum number of replacements
1002 * @return the resulting string after applying the replacements 1001 * @return the resulting string after applying the replacements
1003 */ 1002 */
1004 cx_attr_nodiscard 1003 cx_attr_nodiscard
1005 cx_attr_nonnull 1004 cx_attr_nonnull
1006 cx_attr_export 1005 cx_attr_export
1007 cxmutstr cx_strreplacen_a( 1006 cxmutstr cx_strreplacen_a(
1008 const CxAllocator *allocator, 1007 const CxAllocator *allocator,
1009 cxstring str, 1008 cxstring str,
1010 cxstring pattern, 1009 cxstring search,
1011 cxstring replacement, 1010 cxstring replacement,
1012 size_t replmax 1011 size_t replmax
1013 ); 1012 );
1014 1013
1015 /** 1014 /**
1016 * Replaces a pattern in a string with another string. 1015 * Replaces a string with another string.
1017 * 1016 *
1018 * The pattern is taken literally and is no regular expression.
1019 * Replaces at most @p replmax occurrences. 1017 * Replaces at most @p replmax occurrences.
1020 * 1018 *
1021 * The returned string will be allocated by @c malloc() and is guaranteed 1019 * The returned string will be allocated by @c malloc() and is guaranteed
1022 * to be zero-terminated. 1020 * to be zero-terminated.
1023 * 1021 *
1024 * If allocation fails, or the input string is empty, 1022 * If allocation fails, or the input string is empty,
1025 * the returned string will be empty. 1023 * the returned string will be empty.
1026 * 1024 *
1027 * @param str (@c cxstring) the string where replacements should be applied 1025 * @param str (@c cxstring) the string where replacements should be applied
1028 * @param pattern (@c cxstring) the pattern to search for 1026 * @param search (@c cxstring) the string to search for
1029 * @param replacement (@c cxstring) the replacement string 1027 * @param replacement (@c cxstring) the replacement string
1030 * @param replmax (@c size_t) maximum number of replacements 1028 * @param replmax (@c size_t) maximum number of replacements
1031 * @return (@c cxmutstr) the resulting string after applying the replacements 1029 * @return (@c cxmutstr) the resulting string after applying the replacements
1032 */ 1030 */
1033 #define cx_strreplacen(str, pattern, replacement, replmax) \ 1031 #define cx_strreplacen(str, search, replacement, replmax) \
1034 cx_strreplacen_a(cxDefaultAllocator, str, pattern, replacement, replmax) 1032 cx_strreplacen_a(cxDefaultAllocator, str, search, replacement, replmax)
1035 1033
1036 /** 1034 /**
1037 * Replaces a pattern in a string with another string. 1035 * Replaces a string with another string.
1038 *
1039 * The pattern is taken literally and is no regular expression.
1040 * 1036 *
1041 * The returned string will be allocated by @p allocator and is guaranteed 1037 * The returned string will be allocated by @p allocator and is guaranteed
1042 * to be zero-terminated. 1038 * to be zero-terminated.
1043 * 1039 *
1044 * If allocation fails, or the input string is empty, 1040 * If allocation fails, or the input string is empty,
1045 * the returned string will be empty. 1041 * the returned string will be empty.
1046 * 1042 *
1047 * @param allocator (@c CxAllocator*) the allocator to use 1043 * @param allocator (@c CxAllocator*) the allocator to use
1048 * @param str (@c cxstring) the string where replacements should be applied 1044 * @param str (@c cxstring) the string where replacements should be applied
1049 * @param pattern (@c cxstring) the pattern to search for 1045 * @param search (@c cxstring) the string to search for
1050 * @param replacement (@c cxstring) the replacement string 1046 * @param replacement (@c cxstring) the replacement string
1051 * @return (@c cxmutstr) the resulting string after applying the replacements 1047 * @return (@c cxmutstr) the resulting string after applying the replacements
1052 */ 1048 */
1053 #define cx_strreplace_a(allocator, str, pattern, replacement) \ 1049 #define cx_strreplace_a(allocator, str, search, replacement) \
1054 cx_strreplacen_a(allocator, str, pattern, replacement, SIZE_MAX) 1050 cx_strreplacen_a(allocator, str, search, replacement, SIZE_MAX)
1055 1051
1056 /** 1052 /**
1057 * Replaces a pattern in a string with another string. 1053 * Replaces a string with another string.
1058 *
1059 * The pattern is taken literally and is no regular expression.
1060 * Replaces at most @p replmax occurrences.
1061 * 1054 *
1062 * The returned string will be allocated by @c malloc() and is guaranteed 1055 * The returned string will be allocated by @c malloc() and is guaranteed
1063 * to be zero-terminated. 1056 * to be zero-terminated.
1064 * 1057 *
1065 * If allocation fails, or the input string is empty, 1058 * If allocation fails, or the input string is empty,
1066 * the returned string will be empty. 1059 * the returned string will be empty.
1067 * 1060 *
1068 * @param str (@c cxstring) the string where replacements should be applied 1061 * @param str (@c cxstring) the string where replacements should be applied
1069 * @param pattern (@c cxstring) the pattern to search for 1062 * @param search (@c cxstring) the string to search for
1070 * @param replacement (@c cxstring) the replacement string 1063 * @param replacement (@c cxstring) the replacement string
1071 * @return (@c cxmutstr) the resulting string after applying the replacements 1064 * @return (@c cxmutstr) the resulting string after applying the replacements
1072 */ 1065 */
1073 #define cx_strreplace(str, pattern, replacement) \ 1066 #define cx_strreplace(str, search, replacement) \
1074 cx_strreplacen_a(cxDefaultAllocator, str, pattern, replacement, SIZE_MAX) 1067 cx_strreplacen_a(cxDefaultAllocator, str, search, replacement, SIZE_MAX)
1075 1068
1076 /** 1069 /**
1077 * Creates a string tokenization context. 1070 * Creates a string tokenization context.
1078 * 1071 *
1079 * @param str the string to tokenize 1072 * @param str the string to tokenize

mercurial