HN - Aptech


 
Trang ChínhTrang Chính  PortalPortal  CalendarCalendar  GalleryGallery  Trợ giúpTrợ giúp  Tìm kiếmTìm kiếm  Thành viênThành viên  NhómNhóm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  

Share | 
 

 Các dạng toán cơ bản với string (chém đê)

Go down 
Tác giảThông điệp
spyware
Đại Bàng Tinh
Đại Bàng  Tinh
avatar

Tổng số bài gửi : 116
Join date : 04/06/2009
Age : 34
Đến từ : HN

Bài gửiTiêu đề: Các dạng toán cơ bản với string (chém đê)   Sat Jul 11, 2009 8:02 pm

Code:
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void input(char s[]);// nhap chuoi
void cntch(char s[]); // dem so lan xuat hien cua moi ky tu
int cntword(char s[]); // dem so tu trong chuoi
void ftrim(char s[]); // cat khoang trang o dau chuoi
void ltrim(char s[]); // cat khoang trang cuoi chuoi
int up(char s[]);  //kiem tra: moi tu bat dau = ky tu hoa, sau do la ky tu thuong
void revert(char s[]); // dao chuoi
int sym(char s[]); // chuoi doi xung
void show(char s[]);
void menu(void);
// con ham nao nua khong. bo sung gium.
// kiem tra gium cac ham da chuan, ngan gon chua.
// thanks all
void main()
{
   int i,n;
   char s[100],ch;
   clrscr();
do
  {
   clrscr();
   menu();
   fflush(stdin);
   scanf("%c",&ch);
   switch(ch)
   {
   case '1':input(s);show(s);
       printf("\nSo tu= %d",cntword(s));getch();break;
   case '2':input(s);show(s);
       ftrim(s);getch();break;
   case '3':input(s); show(s); ltrim(s);
       getch();break;
   case '4':input(s);show(s);
       printf("\nKiem tra = %d (1:T||0:F)",sym(s));
       getch();break;
   case '5':input(s);show(s); revert(s);
       getch();break;
   case '6':input(s);show(s);
       printf("\nKiem tra: %d (1:T||0:F)",up(s));
       getch();break;
   case '7':input(s);show(s); cntch(s);
       getch();break;
   case '0':exit(0);
   default : printf("\nNhap sai. nhap lai"); getch();
   }

  } while(ch!='0');

   getch();
}
void menu(void)
{
   printf("\n1. Dem so tu trong chuoi");
   printf("\n2. Cat khoang trang dau chuoi");
   printf("\n3. Cat khoang trang cuoi chuoi");
   printf("\n4. Kiem tra chuoi doi xung");
   printf("\n5. Dao chuoi");
   printf("\n6. Kiem tra tu chuan (bat dau = ky tu hoa, sau do la ky tu thuong)");
   printf("\n7. So so lan xuat hien cua moi ky tu");
   printf("\n0. Exit");
   printf("\n  Nhap lua chon! ");
}
void input(char s[]) // nhap chuoi
{
   printf("Nhap chuoi :");
   fflush(stdin);
   gets(s);
}
void show(char s[])
{
   printf("\nchuoi vua nhap:[%s]",s);
}
int cntword(char s[]) // dem so tu trong chuoi
{
   int i,cnt=0;
   if(strlen(s)==0)   return 0;
   for(i=0;i<strlen(s)-1;i++)
      if(s[i]==' '&&s[i+1]!=' ') cnt++;
   if(s[0]==' ') return cnt;
   return (cnt+1);
}
void ftrim(char s[]) // cat khoang trang o dau chuoi
{
   int i=0;
   while(s[0]==' ')
   for(i=0;i<strlen(s);i++)
      s[i]=s[i+1];
   printf("\nSau khi cat dau:[%s]",s);
}
void ltrim(char s[]) // cat khoang trang cuoi chuoi
{
   while(s[strlen(s)-1]==' ')
      s[strlen(s)-1]=NULL;
   printf("\nSau khi cat duoi:[%s]",s);
}
void revert(char s[]) // dao chuoi
{
   int i;
   char temp;
   for(i=0;i<strlen(s)/2;i++)
   {
      temp=s[i];
      s[i]=s[strlen(s)-1-i];
      s[strlen(s)-1-i]=temp;
   }
   printf("\nChuoi sau khi dao:[%s]",s);
}
int sym(char s[]) // chuoi doi xung
{
   int i;
   for(i=0;i<strlen(s)/2;i++)
   if(s[i]!=s[strlen(s)-1-i])   return 0;
   return 1;
}
int up(char s[])  //kiem tra: moi tu bat dau = ky tu hoa, sau do la ky tu thuong
{
   int i;
   if(s[0]!=' '&& (s[0]<'A'||s[0]>'Z') )   return 0;
   for(i=0;i<strlen(s)-1;i++)
   {
       if(s[i]==' ' && s[i+1]!=' ' && (s[i+1]<'A'||s[i+1]>'Z'))
      return 0;
       if(s[i]!=' '&& s[i+1]>='A'&&s[i+1]<='Z')
      return 0;
   }
   return 1;
}
void cntch(char s[])  // dem so lan xuat hien cua moi ky tu
{
   int i,j,t=1,cnt;
   char u[100];
   u[0]=s[0];
   for(i=1;i<strlen(s);i++)
   {
      for(j=0;j<i;j++)
      if(u[j]==s[i]) break;
      else if(j==i-1)
         u[t++]=s[i];
   }
   u[t]=NULL; //  u[] luu cac ky tu khac nhau trong s[]
   // dem moi ky tu
   for(i=0;i<t;i++)
   {
   cnt=0;
   for(j=0;j<strlen(s);j++)
      if(s[j]==u[i]) cnt++;
   printf("\n%c : %d",u[i],cnt);
   }

}

_________________
::::Real Programmer :::::
Về Đầu Trang Go down
Xem lý lịch thành viên
spyware
Đại Bàng Tinh
Đại Bàng  Tinh
avatar

Tổng số bài gửi : 116
Join date : 04/06/2009
Age : 34
Đến từ : HN

Bài gửiTiêu đề: Re: Các dạng toán cơ bản với string (chém đê)   Sun Jul 12, 2009 11:42 pm

- còn phần chuẩn hóa chuỗi, chèn ký tự vào chuỗi, và các function với mảng chuỗi s[][]. ai post lên giùm cho đủ bộ (s[][] như tìm chuỗi con, các chuỗi có độ dài = max, min.... )
- phần in ra các loại tam giác số 1-->n, tam giác a[i], in ra dạng n cột của mảng số a[n], .... and more. .. còn loại gì nữa đưa lên hết đê

_________________
::::Real Programmer :::::
Về Đầu Trang Go down
Xem lý lịch thành viên
 
Các dạng toán cơ bản với string (chém đê)
Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
HN - Aptech :: Khóa Học :: SEMESTER I :: C :: Bài Tập-
Chuyển đến