Loại bỏ các từ trùng lặp trong một chuỗi trong C
Trong lập trình văn bản, việc loại bỏ các từ trùng lặp trong một chuỗi là một thao tác phổ biến. Trong bài tập này, mình sẽ viết một chương trình trong ngôn ngữ lập trình C để loại bỏ các từ trùng lặp từ một chuỗi đã cho.

Chương trình loại bỏ các từ trùng lặp trong một chuỗi trong C
Phương pháp giải quyết bài lập trình
- Mình sẽ sử dụng một mảng hai chiều để lưu trữ các từ trong chuỗi đã cho.
 - Sau đó, mình sẽ duyệt qua từng từ trong chuỗi và kiểm tra xem từ đó đã xuất hiện trước đó hay chưa.
 - Nếu từ đó chưa xuất hiện, mình sẽ lưu lại từ đó và in ra từ đó. Ngược lại, chúng ta sẽ bỏ qua từ đó.
 
Hãy xem cách giải như sau:
Dưới đây là một ví dụ về cách cài đặt loại bỏ các từ trùng lặp từ một chuỗi trong ngôn ngữ lập trình C nâng cao:
Bài viết này được đăng tại [free tuts .net]
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
// Hàm kiểm tra xem một từ đã xuất hiện trước đó trong mảng chưa
bool isDuplicate(char *word, char *words[], int size) {
    for (int i = 0; i < size; i++) {
        if (strcmp(word, words[i]) == 0) {
            return true; // Từ đã tồn tại
        }
    }
    return false; // Từ chưa tồn tại
}
// Hàm loại bỏ các từ trùng lặp từ chuỗi và in kết quả
void removeDuplicates(char *str) {
    char *words[100]; // Mảng lưu trữ các từ
    int count = 0; // Số lượng từ
    // Tách các từ từ chuỗi
    char *token = strtok(str, " ");
    while (token != NULL) {
        // Kiểm tra xem từ đó đã xuất hiện trước đó chưa
        if (!isDuplicate(token, words, count)) {
            // Nếu chưa, lưu lại từ đó vào mảng và tăng số lượng từ
            words[count++] = token;
        }
        token = strtok(NULL, " ");
    }
    // In ra các từ đã loại bỏ các từ trùng lặp
    printf("Chuỗi sau khi loại bỏ các từ trùng lặp: ");
    for (int i = 0; i < count; i++) {
        printf("%s ", words[i]);
    }
    printf("\n");
}
int main() {
    char str[] = " freetuts.net this is a test test string";
    printf("Chuỗi ban đầu: %s\n", str);
    removeDuplicates(str);
    return 0;
}Kết quả
Khi chạy chương trình với chuỗi ban đầu "freetuts.net this is a test test string", mình sẽ nhận được chuỗi đã loại bỏ các từ trùng lặp là " freetuts.net this is a test string".

Trong bài tập này, mình đã viết một chương trình trong ngôn ngữ lập trình C để loại bỏ các từ trùng lặp từ một chuỗi đã cho. Việc này giúp mình hiểu rõ hơn về cách thực hiện các thao tác với chuỗi và làm việc với mảng trong C.

            Các kiểu dữ liệu trong C ( int - float - double - char ...)        
            Thuật toán tìm ước chung lớn nhất trong C/C++        
            Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)        
            ComboBox - ListBox trong lập trình C# winforms        
            Random trong Python: Tạo số random ngẫu nhiên        
            Lệnh cin và cout trong C++        
                Cách khai báo biến trong PHP, các loại biến thường gặp            
                Download và cài đặt Vertrigo Server            
                Thẻ li trong HTML            
                Thẻ article trong HTML5            
                Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên            
                Cách dùng thẻ img trong HTML và các thuộc tính của img            
                Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng