这不是家庭作业,而是期中学习。
我不能使用任何类型的数组索引,例如 str[i] 或 *(str+i)
我必须使用 c 字符串“EECS280ISAWESOME”并将“E”替换为 c 字符串“XY”。我还必须允许“XY”变量的多个长度。
给出以下主要内容:
int main () {
const char* S = "EECS280ISAWESOME";
const char* P = "XY";
char result[256];
subsituteChar(S,P,'E', result);
cout << result << endl;
}
我的解决方案似乎很复杂/不好的做法/而且丑陋。我可以使用 deferencing 和 add 做得更好,*(R+1)
但我认为这是不允许的。
void subsituteChar(const char* S, const char* P, char c, char* R) {
while(*S != '\0') {
if(*S == c) {
const char* PP = P;
while (*P != '\0') {
*R = *P;
R++;
P++;
}
P = PP;
} else {
*R = *S;
R++;
}
S++;
}
}
这有效,但我留下了XYXYCS280ISAWXYSOMXY2
. 我不知道奇怪2
的东西是从哪里来的。