将Char x更改为数组中的Char y。

时间:2015-02-26 22:46:29

标签: c++ arrays

在下面的代码中,我遇到了一个变异数组的问题。我的问题是为什么funOne函数不会改变我传入的数组?

#include <iostream>

void funOne(char *arr, char x, char y, int z);
void print(char *array);

void print(char *array){
std::cout << array << std::endl;
}

void funOne(char *arr, char x, char y, int z){
    z =  sizeof(arr);
    for(int i = 0; i<z; i++){
    if(arr[i] == x){
    x == y; 
    }

    }

}

int main(){

    char arra[] = {'a', 'b', 'a', 'b', 'a', 'b', 'a', 'b', 'a', 'b'};

    funOne(arra, 'a', 'c', 10);

    print(arra);



    system("pause");
    return 0;
}

1 个答案:

答案 0 :(得分:3)

x == y;

糟糕...?

  • ==运算符用于比较事物;
  • =运算符用于分配内容。

此外,我想你想分配给arr[i],而不是x

arr[i] = y;

要多加小心。

您的最后一个问题是z会出错,因为arr不是您的数组,而是指向数组的指针......并且sizeof(char*)已修复。您必须将数组的长度作为另一个参数传递给函数。

或者,你知道,使用std::vector看到这是21世纪!!