spyware Đại Bàng Tinh
Tổng số bài gửi : 116 Join date : 04/06/2009 Age : 39 Đến từ : HN
| Tiê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); }
} | |
|
spyware Đại Bàng Tinh
Tổng số bài gửi : 116 Join date : 04/06/2009 Age : 39 Đến từ : HN
| Tiê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 đê | |
|