Linux C练习,前面12个字符检测函数,合成一个检测函数
#include<stdio.h>
#include<pthread.h>
#include<ctype.h>
#include<string.h>
//1
void* alnum(char* pbuff)
{
int ret;
int i;
for(i=0;pbuff[i]!='\0';i++)
{
if((ret=isalnum(pbuff[i]))==0)
{
printf("%c is not a alnum!\n",pbuff[i]);
}
else
{
printf("%c is a alnum!\n",pbuff[i]);
}
}
printf("\n");
pthread_exit(NULL);
}
//2//
void* alpha(char* pbuff)
{
int ret;
int i;
for(i=0;pbuff[i]!=0;i++)
{
if((ret=isalpha(pbuff[i]))==0)
{
printf("%c is not a alpha!\n",pbuff[i]);
}
else
{
printf("%c is a alpha!\n",pbuff[i]);
}
}
printf("\n");
pthread_exit(NULL);
}
//3///
void* ascii(char* pbuff)
{
int ret;
int i;
for(i=0;pbuff[i]!=0;i++)
{
if((ret=isascii(pbuff[i]))==0)
{
printf("%c is not a ascii!\n",pbuff[i]);
}
else
{
printf("%c is a ascii!\n",pbuff[i]);
}
}
printf("\n");
pthread_exit(NULL);
}
//4/
void* cntrl(char* pbuff)
{
int ret;
int i;
for(i=0;pbuff[i]!='\0';i++)
{
if((ret=iscntrl(pbuff[i]))==0)
{
printf("%c is not a cntrl!\n",pbuff[i]);
}
else
{
printf("%c is a cntrl!\n",pbuff[i]);
}
}
printf("\n");
pthread_exit(NULL);
}
//5
void* digit(char* pbuff)
{
int ret;
int i;
for(i=0;pbuff[i]!='\0';i++)
{
if((ret=isdigit(pbuff[i]))==0)
{
printf("%c is not a digit!\n",pbuff[i]);
}
else
{
printf("%c is a digit!\n",pbuff[i]);
}
}
printf("\n");
pthread_exit(NULL);
}
//6/
void* graph(char* pbuff)
{
int ret;
int i;
for(i=0;pbuff[i]!='\0';i++)
{
if((ret=isgraph(pbuff[i]))==0)
{
printf("%c is not a graph!\n",pbuff[i]);
}
else
{
printf("%c is a graph!\n",pbuff[i]);
}
}
printf("\n");
pthread_exit(NULL);
}
//7
void* lower(char* pbuff)
{
int ret;
int i;
for(i=0;pbuff[i]!='\0';i++)
{
if((ret=islower(pbuff[i]))==0)
{
printf("%c is not a lower!\n",pbuff[i]);
}
else
{
printf("%c is a lower!\n",pbuff[i]);
}
}
printf("\n");
pthread_exit(NULL);
}
//8///
void* print(char* pbuff)
{
int ret;
int i;
for(i=0;pbuff[i]!='\0';i++)
{
if((ret=isprint(pbuff[i]))==0)
{
printf("%c is not a print!\n",pbuff[i]);
}
else
{
printf("%c is a print!\n",pbuff[i]);
}
}
printf("\n");
pthread_exit(NULL);
}
//9
void* space(char* pbuff)
{
int ret;
int i;
for(i=0;pbuff[i]!='\0';i++)
{
if((ret=isspace(pbuff[i]))==0)
{
printf("%c is not a space!\n",pbuff[i]);
}
else
{
printf("%c is a space!\n",pbuff[i]);
}
}
printf("\n");
pthread_exit(NULL);
}
//10/
void* punct(char* pbuff)
{
int ret;
int i;
for(i=0;pbuff[i]!='\0';i++)
{
if((ret=ispunct(pbuff[i]))==0)
{
printf("%c is not a punct!\n",pbuff[i]);
}
else
{
printf("%c is a punct!\n",pbuff[i]);
}
}
printf("\n");
pthread_exit(NULL);
}
//11///
void* upper(char* pbuff)
{
int ret;
int i;
for(i=0;pbuff[i]!='\0';i++)
{
if((ret=isupper(pbuff[i]))==0)
{
printf("%c is not a upper!\n",pbuff[i]);
}
else
{
printf("%c is a upper!\n",pbuff[i]);
}
}
printf("\n");
pthread_exit(NULL);
}
//12//
void* xdigit(char* pbuff)
{
int ret;
int i;
for(i=0;pbuff[i]!='\0';i++)
{
if((ret=isdigit(pbuff[i]))==0)
{
printf("%c is not a xdigit!\n",pbuff[i]);
}
else
{
printf("%c is a xdigit!\n",pbuff[i]);
}
}
printf("\n");
pthread_exit(NULL);
}
///
int main()
{
pthread_t tpid;
int flag=0;
int ret;
char buff[100];
printf("1.isalnum\n");
printf("2.isalpha\n");
printf("3.isascii\n");
printf("4.iscntrl\n");
printf("5.isdigit\n");
printf("6.isgraph\n");
printf("7.islower\n");
printf("8.isprint\n");
printf("9.isspace\n");
printf("10.ispunct\n");
printf("11.isupper\n");
printf("12.isxdigit\n");
printf("13,quit!\n");
printf("\n");
for(;;)
{
printf("Please select function:\n");
scanf("%d",&flag);
sleep(2);
//1
if(flag==1)
{
printf("Test alnum,Please input the string:\n");
scanf("%s",buff);
printf("\n");
if((ret=pthread_create(&tpid,NULL,(void*)alnum,buff))!=0)
{
printf("pthread_create alnum error!\n");
return -1;
}
memset(buff,'\0',sizeof(buff));
}
//2///
if(flag==2)
{
printf("Test alpha,Please input the string:\n");
scanf("%s",buff);
printf("\n");
if((ret=pthread_create(&tpid,NULL,(void*)alpha,buff))!=0)
{
printf("pthread_create alpha error!\n");
return -1;
}
memset(buff,'\0',sizeof(buff));
}
//3//
if(flag==3)
{
printf("Test ascii,Please input the string:\n");
scanf("%s",buff);
printf("\n");
if((ret=pthread_create(&tpid,NULL,(void*)ascii,buff))!=0)
{
printf("pthread_create ascii error!\n");
return -1;
}
memset(buff,'\0',sizeof(buff));
}
//4
if(flag==4)
{
printf("Test cntrl,Please input the string:\n");
scanf("%s",buff);
printf("\n");
if((ret=pthread_create(&tpid,NULL,(void*)cntrl,buff))!=0)
{
printf("pthread_create cntrl error!\n");
return -1;
}
memset(buff,'\0',sizeof(buff));
}
//5//
if(flag==5)
{
printf("Test digit,Please input the string:\n");
scanf("%s",buff);
printf("\n");
if((ret=pthread_create(&tpid,NULL,(void*)digit,buff))!=0)
{
printf("pthread_create digit error!\n");
return -1;
}
memset(buff,'\0',sizeof(buff));
}
//6//
if(flag==6)
{
printf("Test graph,Please input the string:\n");
scanf("%s",buff);
printf("\n");
if((ret=pthread_create(&tpid,NULL,(void*)graph,buff))!=0)
{
printf("pthread_create graph error!\n");
return -1;
}
memset(buff,'\0',sizeof(buff));
}
//7
if(flag==7)
{
printf("Test lower,Please input the string:\n");
scanf("%s",buff);
printf("\n");
if((ret=pthread_create(&tpid,NULL,(void*)lower,buff))!=0)
{
printf("pthread_create lower error!\n");
return -1;
}
memset(buff,'\0',sizeof(buff));
}
//8///
if(flag==8)
{
printf("Test print,Please input the string:\n");
scanf("%s",buff);
printf("\n");
if((ret=pthread_create(&tpid,NULL,(void*)print,buff))!=0)
{
printf("pthread_create print error!\n");
return -1;
}
memset(buff,'\0',sizeof(buff));
}
//9//
if(flag==9)
{
printf("Test space,Please input the string:\n");
scanf("%s",buff);
printf("\n");
if((ret=pthread_create(&tpid,NULL,(void*)space,buff))!=0)
{
printf("pthread_create space error!\n");
return -1;
}
memset(buff,'\0',sizeof(buff));
}
//10//
if(flag==10)
{
printf("Test punct,Please input the string:\n");
scanf("%s",buff);
printf("\n");
if((ret=pthread_create(&tpid,NULL,(void*)punct,buff))!=0)
{
printf("pthread_create punct error!\n");
return -1;
}
memset(buff,'\0',sizeof(buff));
}
//11//
if(flag==11)
{
printf("Test upper,Please input the string:\n");
scanf("%s",buff);
printf("\n");
if((ret=pthread_create(&tpid,NULL,(void*)upper,buff))!=0)
{
printf("pthread_create upper error!\n");
return -1;
}
memset(buff,'\0',sizeof(buff));
}
//12///
if(flag==12)
{
printf("Test xdigit,Please input the string:\n");
scanf("%s",buff);
printf("\n");
if((ret=pthread_create(&tpid,NULL,(void*)xdigit,buff))!=0)
{
printf("pthread_create xdigit error!\n");
return -1;
}
memset(buff,'\0',sizeof(buff));
}
//13/
if(flag==13)
{
printf("Now quit!!\n");
return -1;
}
}
}
-----------------------------------------------------------------------------------
#gcc -lpthread is-pthread.c -o is-pthread
#./is-pthread
效果如下: