串的处理

来源:互联网 发布:windows关闭防火墙 编辑:程序博客网 时间:2024/06/02 02:38

首先是getch的妙用:

#include "JUDGE.h"int Judge(char ch){if( (ch>='0'&&ch<='9')|| (ch>='a'&&ch<='z') || (ch>='A'&&ch<='Z') )return 1;else return 0;}/*********************************************函数名称:void Input(char *c,int size,int flag)功能描述:   登录对数据进行验证 参数说明:  char *c表示传入的数组,size表示最大的长度 ,当flag为1检验用户名  为0检验密码返回值:**********************************************/void Input(char *c,int size,int flag){int i=0;char ch;while(1){ch=getch();if( Judge(ch) && i<size){if(flag==1){putchar(ch);}else{putchar('*');}c[i]=ch;i++;}else if( ch=='\b'){if(i>0){printf("\b \b");i--;c[i]='\0';}}else if(ch=='\r'){c[i]='\0';break;}else {putchar(7);}}}

char a = '\0'  与char b = '0'是完全不一样的  因为因为\0是ASCII码的第0个字符  而0是ASCII的第48个字符  所以二者是不相等的


串的简单匹配

#include <stdio.h>#define N 10000int main(){int i;int j;int t;char a[N];char p[] = "hello";for(i = 0;i < N-1;i++){if((t = getchar()) == '\n')break;a[i] = t;}a[i] = '\0';for(i = 0;a[i] != '\0';i++){for(j = 0;p[j] != '\0';j++){if( a[i+j] != p[j] )break;}if(p[j] == 0)printf("%d ",i);}printf("\n");}


0 0