【发布时间】:2015-05-12 10:48:38
【问题描述】:
所以我有这段代码可以将 char 数组转换为结构的内容。 (不,我不会争论这是否是正确/最有效的方法)
void chararray_to_categorie(categorie &levarr, char** chararray)
{
string temp = chararray[0];
int length = temp.length();
temp = temp.substr(0, ((length<21)?length:20));
strcpy(levarr.naam, temp.c_str()); //a very sloppy way to use substring on a char array. Tried memcpy and that caused the same results which is why I'm trying it this way.
levarr.naam[20] = '\0';
strcpy(levarr.omschrijving, chararray[1]);
cout << endl << chararray[0] << endl << temp << endl << levarr.naam << endl << length << endl << ((length<21) ? length : 20);
_getch();
/*
input:
naam: 1234567890123456789012345678901234567890
omschrijving: lol
output:
chararray[0]: 1234567890123456789012345678901234567890
temp: 12345678901234567890
levarr.naam: 12345678901234567890lol
*/
}
正如您在输出中看到的那样,您可以看到结构的内容组合了 2 个字符数组,这就是问题所在。
【问题讨论】:
-
显示结构的定义。
-
typedef struct { int ID; char naam[20]、omschrijving[50]; }类别;