Vấn đề
Xóa tất cả khoảng trắng thừa từ chuỗi nhập runtime bằng while loop, kiểm tra khoảng trắng tại mỗi chỉ số.
Giải pháp
Ví dụ: "Tutorials Point C Programming" -> "TutorialsPointCProgramming" (xóa tất cả khoảng trắng).
Khai báo chuỗi: char stringname[size];
Khởi tạo
- Hằng ký tự đơn.
char string[10] = {'H','e','l','l','o','\0'}
- Hằng chuỗi.
char string[10] = "Hello";
Truy cập
Dùng "%s" truy cập đến '\0'.
Logic xóa khoảng trắng thừa:
len = strlen(string);
for(i = 0; i < len; i++){
if(string[0] == ' '){
for(i = 0; i < len-1; i++) string[i] = string[i+1];
string[i] = '\0';
len--; i = -1; continue;
}
if(string[i] == ' ' && string[i+1] == ' '){
for(j = i; j < len-1; j++) string[j] = string[j+1];
string[j] = '\0';
len--; i--;
}
}
Ví dụ
Chương trình C xóa khoảng trắng thừa:
#include <stdio.h>
#include <string.h>
int main(){
char string[200];
int i, j, len;
printf("Nhap cau: ");
gets(string);
len = strlen(string);
for(i = 0; i < len; i++){
if(string[0] == ' '){
for(i = 0; i < len-1; i++) string[i] = string[i+1];
string[i] = '\0'; len--; i = -1; continue;
}
if(string[i] == ' ' && string[i+1] == ' '){
for(j = i; j < len-1; j++) string[j] = string[j+1];
string[j] = '\0'; len--; i--;
}
}
printf("\nChuoi moi sau xoa khoang trang thua = %s", string);
getch();
return 0;
}
Đầu ra
Kết quả chạy chương trình:
Nhap cau: Welcome to The world of C programming Chuoi moi: Welcome to The world of C programming