怎么求字符串中数字,字母的个数

怎么求字符串中数字,字母的个数,可以用while的语句麽,可以用什么方便的方法,或者有什么思路

或者

 int i,zm=0,sz=0;
char s[200];
gets(s);
for(i=0;s[i];i++)
{
 if(s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]='z')zm++;
  else if(s[i]>='0'&&s[i]='9')sz++;
}
printf("共有字母%d  数字%d\n",zm,sz);

char* s="123abc";

此时s指向字符串的第一个字符,也就是“1”

判断*s是否为字符尾

判断一下*s是否为数字或字母,

判断结束s++,指向下一个字符

循环

/arg为要输入的字符串
int lettercout(char* arg)
{
char *tmp = arg;
int k = 0;
while(*tmp != '\0')
{
if((*tmp >='a'&&*tmp <='z')||(*tmp >= 'A'&&*tmp <= 'Z'))
k++;
tmp ++;
}
return k;
}

#include
int main(){
char c;
int count = 0;
while(c=getchar(),c!='\n'){
if((c>='a' && c<='z')||(c>='A' && c<='Z') ){
count ++;
}
}
printf("字母个数是:%d\n",count);
return 0;
}

 #include<stdio.h>
void main()
{
int num_data = 0; // 用于记录输入字符串中的数字个数
int num_char = 0; // 用于记录输入字符串中的字母个数
int i; // 循环变量
char c[100]; // 输入字符串保存
scanf("%s",c);
for(i=0;i<100;i++)
{
if((c[i]>=48)&&(c[i]<=57)) // 若是一个数字
num_data ++;
elseif( ((c[i]>=65)&&(c[i]<=90)) || ((c[i]>=97)&&(c[i]<=122)) ) // 若是一个字母
num_char ++;
} 
printf("The data number = %d\r\n",num_data); // 打印出字符串中数字的个数
printf("The char number = %d\r\n",num_char); // 打印数字符串中字母的个数
}

其实就是一个循环,判断每一个字符是不是字母,如果是则计数的变量加1,最后计数变量就是字符串的字母数量

字符串 循环截取,然后单独判断,定义两个变量,分别统计 数字和字母 的数量

http://bbs.csdn.net/topics/390213538 以前的一篇帖子,介绍得很详细。

其实很简单 字母和数字的hashcode值范围不同 你把字符串拆分成字符数组 然后看每个字符的hash code值在哪个范围ok了

谢了各位 大大 终于懂了

这问题解决了,谢谢各位大大