我应该怎样做才能把函数的输入数组的所有索引都转换成字符“”呢?我知道应该使用这个数组的地址,但是我不知道这个函数是什么:
void something (char s1[]) { for (int i = 0; i < strlen (s1); i++) { cout<<i; s1[i] = '?'; } } int main() { something ("The String!"); getch(); }
guykilcj1#
我认为你真正想要的是把输入字符串的每个字符都转换成“?"。你的代码的主要问题是“The String!”是char*类型的,并且存储在内存的代码段中,所以你不能修改它的字符。但是你可以将它定义为一个数组。
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(您可以通过引用将其传递给您的函数以省略复制)。
std::string
1条答案
按热度按时间guykilcj1#
我认为你真正想要的是把输入字符串的每个字符都转换成“?"。你的代码的主要问题是“The String!”是
char*
类型的,并且存储在内存的代码段中,所以你不能修改它的字符。但是你可以将它定义为一个数组。一般来说,我建议不要使用C风格的字符串,而是使用C++风格的
std::string
(您可以通过引用将其传递给您的函数以省略复制)。