Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C xóa n ký tự trong chuỗi tại vị trí cho trước

Đề bài

Viết hàm xóa N ký tự từ vị trí p trong chuỗi do người dùng nhập.

Thuật toán

del_str(str, p, n):
  for i=0, j=0; str[i]!='\0'; i++, j++
    if i == p-1
      i = i + n      // bỏ qua n ký tự
    str[j] = str[i]
  str[j] = '\0'

Chương trình C

#include <stdio.h>
#include <conio.h>

void del_str(char [], int, int);

main() {
    int n, p;
    char str[30];
    printf("\nNhập chuỗi: ");
    gets(str);
    fflush(stdin);
    printf("\nNhập vị trí bắt đầu xóa: ");
    scanf("%d", &p);
    printf("\nNhập số ký tự cần xóa: ");
    scanf("%d", &n);
    del_str(str, p, n);
}

void del_str(char str[], int p, int n) {
    int i, j;
    for (i = 0, j = 0; str[i] != '\0'; i++, j++) {
        if (i == (p - 1)) {
            i = i + n;
        }
        str[j] = str[i];
    }
    str[j] = '\0';
    puts("Chuỗi sau khi xóa:");
    puts(str);
}

Kết quả

Nhập chuỗi: Tutorials Point C programming
Nhập vị trí bắt đầu xóa: 10
Nhập số ký tự cần xóa: 6
Chuỗi sau khi xóa: Tutorials C programming