Для жизни я не могу понять, почему я не могу написать строку стиля ac внутри структуры.
Студент колледжа - не может использовать класс строк, не узнал указатели.
Помогите? 2 часа, пытаясь понять это.
#include <iostream>
using namespace std;
void strCopy(char from[], char to[])
{
for (int i = 0; i < 255; i++)
{
to[i] = from[i];
}
}
struct card
{
char suit[20];
char rank[20];
int cvalue;
char location[20];
};
void printCard(card card)
{
cout << card.rank << " of " << card.suit << endl;
}
int main()
{
// I don't think strCopy() the problem, I've used it with my last project.
cout << "Test strCopy()" << endl;
char str1[14] = "abcdefghijklm";
char str2[14];
strCopy(str1, str2);
cout << " " << str2 << endl << endl;
// Now the negative.
card one;
one.cvalue = 2;
strCopy("Somewhere", one.location);
strCopy("Two", one.rank);
strCopy("Hearts", one.suit);
printCard(one);
}
//Я не думаю, что strCopy() проблема, я использовал ее с моим последним проектом.
Неправильно
for (int i = 0; i < 255; i++)
{
to[i] = from[i];
}
копирует 255 символов, однако это не то, что вы имели в виду.
Если здесь:
strCopy(str1, str2);
cout << " " << str2 << endl << endl;
Вы получаете "правильный" вывод, тогда вам просто не повезло, так как это вызывает неопределенное поведение, вы сбрасываете конец массива.
for (int i = 0; i < 255; i++)
Вт. Ваши строки имеют длину 14/20char
, вы положительно сбрасываете свой стек.