Xoá khoảng trắng trong chuỗi

cái hàm strtok chạy ngược từ cuối chuỗi lên đầu chuỗi được không Rock_Hoang

while và for trong C có cấu trúc lệch khá thoải mái nên nói chung nó đều thay thế nhau được :smile: bạn có thể thử chuyển qua lại dễ dàng mà. Bạn dùng sơ đồ khối để dễ hình dung.

không được bạn ơi, mà bạn dùng vào gì mà phải chạy ngược chuỗi?
bạn cũng có thể viết một hàm tương tự như strtok nhưng chạy ngược chuỗi được mà :smile:

I moved a post to a new topic: Đảo ngược chuỗi kí tự

sửa câu if thành if((s[i]==’ ')) xóa bỏ s[i+1] là xong

char s[100]="MOT HAI  BA   NAM";
int i,n,j,dem,lap=0;
printf("Chuoi truoc khi cat:\n");
for(i=0;i<n;i++)
{
    printf("%c",s[i]);
}
//gets(s);
dem=0;
n=strlen(s);
//do
//{
    for(i=0;i<n;i++)
    {
        if((s[i]==' '))
        {
            //dem++;
            for(j=i;j<n;j++)
            {
                s[j]=s[j+1];
            }
            n--;     //so ki tu cua chuoi giam xuong
            i--;     //sau buoc nay thi i se tang (vong for) nen ta se giam no xuong
        }
    }
    lap++;
//}
//while(dem==0);
printf("Chuoi sau khi cat:\n");
//for(i=0;i<(n-dem);i++)
for (i=0;i<n;i++)
{
    printf("%c",s[i]);
}
for(i=0; i<size; i++){
		if(isblank(a[i]) == true && isblank(a[i+1]) == true){
			for(j=i; j<size; j++){
				a[j] = a[j+1];
			}
			size--;
			i--;
		}
	}
1 Like

bạn ơi cho mình hỏi , sao phải chuyển sang biến j để xóa khoảng trắng z?

Ban hoc den thuat toan xoa 1 phan tu trong mang se hieu

memmove không cho chồng lấn nhé.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?