Remove space trong chuỗi

Yêu cầu: Xóa bỏ các kí tự khoảng trắng (kí tự space và kí tự ‘\t’)

Thuật toán: Duyệt các kí tự của chuỗi.

/************************Trim space******************
* Author: vncoding
* Date : 22/12/2015
* Modify: vncoding
***************************************************************/
#include <stdio.h>
#include <conio.h>
#include <string.h>

#define MAX_LENGTH 100

void TrimSpace(char *str);

void main()
{
    char str[MAX_LENGTH];
    char c;
    printf("\nNhap chuoi khong qua 100 ki tu: ");
    fflush(stdin);
    gets(str);
    printf("\nChuoi '%s'", str);
    TrimSpace(str);
    printf("\nChuoi sau khi trim '%s'", str);
    getch();
}

void TrimSpace(char *str)
{
    char *src = str;
    char *des = str;
    while(*src != NULL)
    {
        if (*src != ' ' && *src != '\t') // space and tab
        {
            *des++ = *src;
        }
        src++;
    }
    *des = 0;
}

Kết quả:

Xóa kí tự space trong chuỗi kí tự
Xóa kí tự space trong chuỗi kí tự

Giải thích:

Loại bỏ dấu cách khỏi chuỗi kí tự
Loại bỏ dấu cách khỏi chuỗi kí tự

 

  • Khởi tạo, con trỏ src, des trỏ tới kí tự đầu chuỗi kí tự
  • Duyệt chuỗi và kiểm tra kí tự, nếu khác kí tự space và kí tự tab ‘\t’, copy kí tự vào vị trí trỏ bởi des
  • Khi duyệt hết chuỗi kí tự, các kí tự không phải là khoảng trắng được dồn về bên trái. Gán *des = 0 để tách chuỗi kí tự.

Chú ý: việc loại bỏ dấu space thao tác trực tiếp và thay đổi nội dung  trên vùng nhớ của str.

10 Comments on Remove space trong chuỗi

Leave a Reply to VietVH Cancel reply