C++中将string转为数组:

第一种:(利用指针进行操作)

因为string可以看作是数组构成的串,所以直接定义一个char的指针,指过去就可以了。

  • 示例如下:
int main() {
	string s1;
	cout<<"Please input a string:";
	cin >> s1;
	const char * k = NULL;	

	k = s1.c_str();	//让指针指向s1的位置
	cout << k[0] << endl;
	for (int i = 0; k[i] != '\0'; i++) {
		cout << k[i];
	}
	system("pause");	//暂停一下以便查看
	return 0;	//标准的返回退出
 }

复习:
1.const char * ——指针的指向可以改变,但是指针指向内存的值不可以改变;
2…char const * ——指针的指向不可以改变,但是指针指向内存的值可以改变;

string.c_str是Borland封装的String类中的一个函数,它返回当前字符串的首字符地址
c_str函数的返回值是const char的,不能直接赋值给char,所以就需要我们进行相应的操作转化。

c_str()返回的是一个临时指针,不能对其进行操作。 所以需要使用const char * 类型的常量指针来对其进行接收,负责会报错;

第二种:(拷贝复制字符串到数组进行操作)

比较机械的,先定义一个字符数组,然后将字串的内容“复制”进去。这种方法更规矩一些,也更安全一些:

int main() {
	string s;
	char s1[20];
	cout << "Please input a string:";
	cin >> s;
	strcpy(s1, s.c_str());	//strcpy()函数的作用是将指定的字符串进行拷贝,该函数无法拷贝string对象,只能拷贝string对象的c_str;

	cout << s1[0]<<endl;
	for (int i = 0; s1[i] != '\0'; i++) {
		cout << s1[i];
	}
	system("pause");	//暂停一下以便查看
	return 0;	//标准的返回退出
 }

此方法与上述方法类似,但是这种方法用了strcpy()方法将字符串内容进行拷贝,所以更为安全一些

注意:
此方法中的的s1为数组名,代表了数组的首地址;

第三种:直接用字符串进行数组类型的操作

  • 字符串和数组进行随时切换:
int main() {
	string s;
	cout<<"please input a string:";
	cin >> s;
	cout << s << endl;
	cout << s[0]<<endl;
	for (int i = 0; s[i] != '\0'; i++) {
		if (s[i] == 'm') {
			break;
		}
		cout << s[i];
	}
	system("pause");	//暂停一下以便查看
	return 0;	//标准的返回退出
 }

注意:
C++中的字符串数组不需要像C语言一样利用for循环进行输入,只需利用数组名就可以像字符串一样进行赋值操作;

int main() {
	char s[20];
	cin >> s;
	for (int i = 0; s[i] != '\0'; i++) {
		cout << s[i];
	}
	system("pause");	//暂停一下以便查看
	return 0;	//标准的返回退出
 }
  • 24
    点赞
  • 146
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值