Пробел
Уг программ нь гараас
үг,үсэг өгхөд хоорондох олон зайг арилган зайг нь нэг болгох программ юм.
#include<cstdio>
#include<string.h>
main()
{
char a[100];
int n,j,p;
fgets(a,100,stdin);
n=strlen(a);
for(int i=0;i<=n;i++)
{ if((a[i]=='
')&&(a[i+1]==' '))
{
p=i+1;
j=0;
while(j!=p-1)
j++;
while(j<n)
{
a[j]=a[j+1];
j++;
}
i--;
}
} printf("%s",a);
}
char a[100]; --нь тэмдэгт мөрийг
зарлаж байна .
fgets(a,100,stdin);-- нь
тэмдэгт мөрийг зайтай нь уншиж байна. Уг зүйл байхгүй бол зай авхад л өөрийн бичсэн зүйлийн чин
зайнаас өмнөх үгийг л хэвлэх болно.
n=strlen(a); -- тэмдэгт
мөрийн уртыг олох болно.
for(int i=0;i<=n;i++)
– давталт явуулах болно.
{ if((a[i]==' ')&&(a[i+1]==' ')) –
хэрвээ тэмдэгт мөрөнд хоёр удаа зай авбал уг нөхцөл биелэж доорх үйлдлүүдийг
хийх болно.
{p=i+1;
j=0;
while(j!=p-1)
j++; -- Энэ үйлдэл нь p гэсэн хувсагчид хоёр дахь зайг оноож өгнө.Дараа нь j хувсагчид 0 оноож өгнө. Үүний дараа давталт оруулна. Уг
давталт нь 0 зайгаас хасах нь 1 буюу өмнөх зайнаас ялгаатай байвал уг давталт
нэг нэг алхамаар гүйсээр л байна.
a[j]=a[j+1];
j++; a[j+1] гэсэн үйлдлийг a[j] утгад оноож өгч байна.
i--; - Энэ үйлдэл нь их чухал үйлдэл юм. Та энэ үйлдлийг
хийхгүй бол таний программ олон зай авхад ганцийг л устгана.
printf("%s",a); -- ингээд сүүлд нь хэвлэх үйлдэл
буюу а хувсагчийг хэвлэх болно.
No comments:
Post a Comment