#include <stdio.h>
#include <stdlib.h>
int* generateRange(char* code) {
int start, end;
sscanf(code, "%d-%d", &start, &end);
int size = end - start + 1;
int* result = (int*)malloc(size * sizeof(int));
for (int i = 0; i < size; i++) {
result[i] = start + i;
}
return result;
}
char *strReplace(char *str, char *oldstr, char *newstr)
{
int j = 0;
char bstr[strlen(str)+10];
memset(bstr, 0, sizeof(bstr));
for (j = 0; j < strlen(str); j++)
{
if (!strncmp(str + j, oldstr, strlen(oldstr)))
{
strcat(bstr, newstr);
j += strlen(oldstr) - 1;
}
else
{
strncat(bstr, str + j, 1);
}
}
strcpy(str, bstr);
return str;
}
int GetAimNum(char* str, char aim)
{
int str_len = strlen(str);
int count = 0;
for (int i = 0; i < str_len; i++)
{
if (*str == aim)
count++;
str++;
}
return count;
}
void Replace(char* str, char *oldchar, char* newstr)
{
int i = strlen(str);
int newstr_len = strlen(newstr);
int count = GetAimNum(str, oldchar);
int j = i + count * (newstr_len - 1);
while (i >= 0)
{
if (str[i] != oldchar)
{
str[j--] = str[i--];
}
else
{
for (int z = newstr_len - 1; z >= 0; z--)
{
str[j--] = newstr[z];
}
i--;
}
}
}
int main() {
char code[64] = "1234%567%%89";
char code2[] = "ffff";
char buffer[64] = {0};
Replace(code, '%', "%%");
printf("code=%s\n", code);
return 0;
}