C++如何将string数组拷贝到char *array[]字符串数组呢?
本文介绍了C++如何将string数组拷贝到char *array[]字符串数组呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
1:我想把C++的string[]转换为char *array[],但是试了很久发现无法完成该功能,下面是我调试的代码,无论怎么调试,输出的数组总是不断的循环,不清楚哪里问题,请大家帮忙,谢谢!
#include <iostream>
#include <string.h>
using namespace std;
int main() {
char *instrumentID[] = { 0 }; //订阅合约所以数量为3
string array[] = { "1yuanpengfei", "2yuwangying", "3huangtilong", "4hongzhaoyang", "5gengchaogang", "6zhangshuai", "7shenshuai" };
cout << "total string size is:" << sizeof(array) / sizeof(string) << endl;
int size = sizeof(array) / sizeof(string);
int i;
for (i = 0; i < size; i++) {
const char *charResult = array[i].c_str();
instrumentID[i] = new char[strlen(charResult) + 1];
strcpy(instrumentID[i], charResult);
cout << instrumentID[i] << endl;
}
}
解决方案
数组越界了
char *instrumentID[] = { 0 };
这个数组的大小只有1。
可以写成
char **instrumentID = new char *[size];
回复在评论里星号被吃了....
这篇关于C++如何将string数组拷贝到char *array[]字符串数组呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文