C làm phiền tôi với việc xử lý chuỗi. Tôi có một giả như thế này trong tâm trí tôi:Tìm các phần tử duy nhất trong một mảng chuỗi trong C
char *data[20];
char *tmp; int i,j;
for(i=0;i<20;i++) {
tmp = data[i];
for(j=1;j<20;j++)
{
if(strcmp(tmp,data[j]))
//then except the uniqueness, store them in elsewhere
}
}
Nhưng khi tôi mã này kết quả là xấu (tôi xử lý tất cả những thứ nhớ, những điều nhỏ nhặt, vv) Vấn đề là trong vòng lặp thứ hai rõ ràng là:. D . Nhưng tôi không thể nghĩ ra bất kỳ giải pháp nào. Làm cách nào để tìm chuỗi duy nhất trong một mảng.
Ví dụ nhập: abc def abe abc def deg được nhập số duy nhất: abc def abe deg sẽ được tìm thấy.
Sắp xếp mảng đầu tiên sẽ giúp bạn có một chặng đường dài. Sau đó, chỉ cần lặp qua các chuỗi và nếu chuỗi hiện tại khác với chuỗi trước, chuỗi đó là duy nhất và bạn có thể lưu nó ở nơi khác. – WhirlWind
vấn đề là tôi cần vị trí chính xác. Bạn biết như thế này: đầu vào: abc def abe abc def deg nhập số duy nhất: abc def abe deg nếu tôi sắp xếp mảng tôi sẽ nhận được những cái duy nhất như thế: abc abe def deg Đây không phải là những gì tôi muốn tôi cần các địa điểm là tốt. – LuckySlevin
Sau đó tạo một mảng con trỏ hoặc một mảng các chỉ mục mảng vào mảng ban đầu mà bạn sắp xếp, thay vì sắp xếp mảng ban đầu. – WhirlWind