关于使用字符串数组作为函数参数的问题
Question about using string arrays as function parameters
我是新手,今天遇到了一个小问题,希望得到大神的解答,万分感谢。
代码如下。
#include<iostream>
using namespace std;
void sub(char b[]){
b[] = "world"; //I alse try b*/b,but it is not ok
}
int main(void){
char a[10] = "hello";
sub(a);
cout<<a<<endl;
system("pause");
return 0;
}
错误:']' 标记前需要主表达式
b[] = "世界";
^
The error
我希望最终输出是“world”。函数 sub() 可以 运行 正确。我该怎么办?
strcpy(b, "world"); // need <string.h>
但我会直接使用 std::string(而不是 c 字符串)。
#include<iostream>
#include<string>
using std::cout;
using std::string;
void sub(string &b){
b = "world";
}
int main(){
string a = "hello";
sub(a);
cout << a << endl; // output
system("pause");
return 0;
}
正如其他人告诉您的那样,它不是 C++ 风格而是 C 风格,我将尝试解释为什么它无法编译。
当你写 b[i]
时,你告诉编译器:“请转到内存位置 b + sizeof(b type) * i
”,所以当你写 b[]
时,编译器无法理解你想要什么。
我是新手,今天遇到了一个小问题,希望得到大神的解答,万分感谢。 代码如下。
#include<iostream>
using namespace std;
void sub(char b[]){
b[] = "world"; //I alse try b*/b,but it is not ok
}
int main(void){
char a[10] = "hello";
sub(a);
cout<<a<<endl;
system("pause");
return 0;
}
错误:']' 标记前需要主表达式 b[] = "世界"; ^ The error
我希望最终输出是“world”。函数 sub() 可以 运行 正确。我该怎么办?
strcpy(b, "world"); // need <string.h>
但我会直接使用 std::string(而不是 c 字符串)。
#include<iostream>
#include<string>
using std::cout;
using std::string;
void sub(string &b){
b = "world";
}
int main(){
string a = "hello";
sub(a);
cout << a << endl; // output
system("pause");
return 0;
}
正如其他人告诉您的那样,它不是 C++ 风格而是 C 风格,我将尝试解释为什么它无法编译。
当你写 b[i]
时,你告诉编译器:“请转到内存位置 b + sizeof(b type) * i
”,所以当你写 b[]
时,编译器无法理解你想要什么。