HN - Aptech


 
IndexIndex  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 đê)

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
spyware
Đại Bàng Tinh
Đại Bàng  Tinh


Tổng số bài gửi : 116
Join date : 04/06/2009
Age : 32
Đế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


Tổng số bài gửi : 116
Join date : 04/06/2009
Age : 32
Đế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 đê)
Xem chủ đề cũ hơn Xem chủ đề mới hơn 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