c++ 如何在函数中更改函数的输入索引的值?

y3bcpkx1  于 2022-12-27  发布在  其他
关注(0)|答案(1)|浏览(137)

我应该怎样做才能把函数的输入数组的所有索引都转换成字符“”呢?我知道应该使用这个数组的地址,但是我不知道这个函数是什么:

void something (char s1[]) {
    for (int i = 0; i < strlen (s1); i++) {
        cout<<i;
        s1[i] = '?';
    }
}
int main() {
    something ("The String!");
    getch();
}
guykilcj

guykilcj1#

我认为你真正想要的是把输入字符串的每个字符都转换成“?"。你的代码的主要问题是“The String!”是char*类型的,并且存储在内存的代码段中,所以你不能修改它的字符。但是你可以将它定义为一个数组。

void something (char s1[]) {
    for (int i = 0; i < strlen (s1); i++) {
        cout<<i;
        s1[i] = '?';
    }
}
int main() {
    char input[] = "The String!";
    something (input);
    getch();
    return 0; // do not forget to return value from your function.
}

一般来说,我建议不要使用C风格的字符串,而是使用C++风格的std::string(您可以通过引用将其传递给您的函数以省略复制)。

相关问题