鱼C论坛

 找回密码
 立即注册
查看: 2432|回复: 1

输入回车 空白符 字符 所有显示个数遇到函数问题求解决

[复制链接]
发表于 2011-12-1 01:42:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include "stdio.h"
void main()
{
   char str[81];
   int i,len;
   int letter = 0;
   int digit = 0;
   int space = 0;
   int other = 0;
   printf("Please enter: ");
   gets(str);
   len = strlen(str);
   for(i = 0;i < len;i++)
   {
   if( (str >= 'a' && str <= 'z') || (str >= 'A' && str <= 'Z') )
   letter++;
   else if(str >= '0' && str <= '9')
   digit++;
   else if(str == ' ')
   space++;
   else  
  other++;
   }
   printf("letter = %d个\n digit = %d个\n space = %d个\n other = %d个\n",letter,digit,space,other);
}        我在这个地方很郁闷gets(str);
   len = strlen(str);
   for(i = 0;i < len;i++) 没看懂 指点下!求详细


                               
登录/注册后可看大图
该贴已经同步到 空手套小白狼的微博
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-1 08:08:01 | 显示全部楼层
本帖最后由 ken 于 2011-12-1 08:18 编辑

1. 请注意,最好能加上string.h头文件,因为如果是.cpp格式的话,strlen需要这个头文件,str要换成str加上中括号在里面有个i.(不知道为什么不能写,所以只能用文字描述下)
2. gets是从标准流(键盘)里读取一字符串,当读取到换行符或者EOF时停止,但是不把换行符作为读取内容。
3. srtlen是求字符串的长度,但是不把结束符计算在内,例如“abc d”的长度是3个字符+1个空格等于4.因为i是从0开始的,所以i的取值是小于len的,不能够等于。
4. 但是要注意越界问题,你可以改成str[3]或者其他比较小的数试下。
不知道以上的解释能不能帮到你?


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-17 00:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表