时间复杂度o(n)
空间复杂度o(1)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<assert.h>
#include<string.h>
int GetCharCount(char* arr, char c) {
int count = 0, i = 0;
while (arr[i] != '\0') {
if (arr[i] == c) {
count++;
}
i++;
}
return count;
}//统计字符
void replace(char* arr,char aim,int num,char newchar) {
assert(arr != NULL);
int count = GetCharCount(arr, aim);
int i = strlen(arr),j = i+count*(num-1);//'0'的位置
while (i != j) {
if (arr[i] != aim) {
arr[j--] = arr[i--];
}
else {
for (int z = 0; z < num; z++) {
arr[j--] = newchar;
}
i--;
}
}
}
int main() {
char arr[100] = "i am a student";
replace(arr,' ',2,'?');//将空格替换成2个问好
printf("%s",arr);
return 0;
}