C语言判断字符串类型程序!!!!!!!!!!

如题所述

#include <stdio.h>


int

main(int argc, char *argv[])

{


char str[101]={0};

char *p=str;


int digitCount=0;

int letterCount=0;


printf("please input a string: ");


gets(str);


printf("your input string is: %s\n",str);


while(*p!='\0')

{

if(*p>'0'&&*p<'9')

{

digitCount++;

}

else if((*p>'a'&&*p<'z')||(*p>'A'&&*p<'Z'))

{

letterCount++;

}

p++;

}


if(digitCount==0&&letterCount==0)

{

printf("you have nothing input.\n");

}

else if(digitCount>0&&letterCount>0)

{

printf("mixed\n");

}

else if(digitCount>0&&letterCount==0)

{

printf("digit\n");

}

else if(digitCount==0&&letterCount>=0)

{

printf("letter\n");

}

else

{

//no way

}






getchar();


return 0;

}


温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-19
你可以声明两个变量
int digit=0,letter=0;
逐个判断字符串数组里面的元素
while(*s!='\0')
if( *s 为数字 ) digit = 1;

else if(*s 为字母) letter =1;
s++;

最后判断digit和letter
if(digit && letter) 则输出mixed
else if(digit) 输出 digit
else 输出 letter
第2个回答  2015-01-19

第3个回答  2015-01-19
#include "stdafx.h"
#include <stdio.h>
#include <tchar.h>

void Judge_char1()
{
char c_in;
static int num_word=0,num_num=0;
while ((c_in=getchar())!='\n')
{
if((c_in>='a'&&c_in<='z')||(c_in>='A'&&c_in<='Z'))
num_word++;
else if(c_in>='0'&&c_in<='9')
num_num++;
}
if (num_word==0) //只包含数字
{
printf("digit\n");
}
else if (num_num==0) //只包含字母
{
printf("letter\n");
}
else
{
printf("mixed\n");
}
}
int _tmain(int argc, _TCHAR* argv[])
{
Judge_char1();
return 0;
}
相似回答