cái hàm strtok chạy ngược từ cuối chuỗi lên đầu chuỗi được không Rock_Hoang
Xoá khoảng trắng trong chuỗi
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 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à
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