天天看点

C++ 不能通过给字符数组名赋值的方法给字符数组赋值

已知有数组定义:char a[3][4];

形如:“a[0] = “AAA”;”的赋值语句是错误的,因为在C++中,无法通过给字符数组名赋值来实现给字符数组每一个元素赋值。

正确的赋值方法应该是:

  1. 通过for循环来赋值
#include<iostream>
using namespace std;

int main(){
	char a[3][4];
	char *p="AAA";
	for(int i=0;i<=strlen(p);i++){
		a[0][i]=p[i];
	}
	cout<<a[0]<<endl;

	return 0;
}
           

  输出结果为“AAA”。

  1. 更简单的方法就是使用strcpy函数
#include<iostream>
using namespace std;

int main(){
	char a[3][4];
	char *p="AAA";
	strcpy(a[0], p);
	cout<<a[0]<<endl;

	return 0;
}
           

  输出结果为“AAA”。

继续阅读