如题所述
#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
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;
}
#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;
}