好吧,我不知道该怎么办:
struct
{
char nombre[30];
int codigo;
}productos[10];
int z = 0;
char tempchar[30];
for (z=0; z<9; z++) {
if (productos[z].codigo>productos[z+1].codigo) {
tempchar = productos[z].nombre;
productos[z].nombre = productos[z+1].nombre;
productos[z+1].nombre = tempchar;
}
}
我收到以下错误消息:
ISO C++禁止数组的赋值
显然有更多的代码,但我只是包括了它与错误的关系。
我只想按代码对产品名称进行排序。那么,我在这里能做什么?
最佳答案
是C还是C++?
在C语言中,应该使用strcmp(3)比较字符串,并使用strcpy(3)复制字符串。小心buffer overflow(可能使用strncmp
和strncpy
等)。确保所有字符串都以空结尾。使用qsort(3)进行排序。
在C++中,你应该使用知道“cc>”的std::string
;然后可以使用std::sort对它们排序。如果你使用像std::set或std::map这样的订购容器,它们将按结构进行订购。