下面代码为什么会提示冲突
int replace(char*str, char c1, char c2) {
int count = 0;
int i = 0;
while (*str != '\0') {
if (str[i] = c1){
str[i] = c2;
count++;
}
i++;
}
return count;
}
int main()
{
char A[5] = "abcd";
cout << "count:" << replace(A, 'a', 'f') << endl << "A" << A;
return 0;
}
1、星str表示char数组的第一个元素,所以永远不可能=\0,while死循环,i一直自增,str[i]越界
2、str[i] = c1;是赋值,str[i] = =c1才是判断
if (str[i] = c1)
->
if (str[i] == c1)
if (str[i] = c1)
改为
if (str[i] == c1)
来,给你改了一下,运行试试:
int replace(char*str, char c1, char c2) {
int count = 0;
int i = 0;
while (str[i] != '\0') {
if (str[i] == c1){
str[i] = c2;
count++;
}
i++;
}
return count;
}
int main()
{
char A[5] = "abcd";
cout << "count:" << replace(A, 'a', 'f') << endl << "A:" << A;
return 0;
}