Đề 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