C语言编程,输入一个字符串,输出字符串中的字母和数字个数,下面是我的做法,请教哪里错了啊

#include<stdio.h>voidmain(){chars[50];char*p=s;inti;intsum1=0,sum2=0;printf("请输入一个字符串... #include <stdio.h>
void main()
{
char s[50];
char *p=s;
int i;
int sum1=0,sum2=0;

printf("请输入一个字符串:");
scanf("%s\t",&s);

for(i=0;i<50;i++)
{
if((65<=*p&&*p<=90)||(97<=*p&&*p<=122))
sum1=sum1+1;
else if(48<=*p&&*p<=57)
sum2=sum2+1;
}

printf("字母个数为:%d\n ",sum1);
printf("数字个数为:%d\n ",sum2);
}
展开
 我来答
愤怒D蕃茄
2015-04-22 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:77
采纳率:0%
帮助的人:48.8万
展开全部
你一直在检查这个*p,i自增后循环里的*p一直没动,
而且*p这个指针也不能代表单个字符,
何况输入的字符串长度又不一定是50个字符,
你的循环直接把50个字符全遍历也不对。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mr_shj
推荐于2016-11-17 · TA获得超过2682个赞
知道大有可为答主
回答量:1665
采纳率:94%
帮助的人:1390万
展开全部
#include <stdio.h>
void main()
{
char s[50];
char *p=s;
int i;
int sum1=0,sum2=0;

printf("请输入一个字符串:");
scanf("%s\n",s); /*改了这*/

for(i=0;i<50;i++)
{
if((65<=*(p+i)&&*(p+i)<=90)||(97<=*(p+i)&&*(p+i)<=122)) /*改了这*/
sum1=sum1+1;
else if(48<=*(p+i)&&*(p+i)<=57) /*改了这*/
sum2=sum2+1;
}

printf("字母个数为:%d\n ",sum1);
printf("数字个数为:%d\n ",sum2);

}
更多追问追答
追问

按照这个改了之后,输入字符串后还是不能继续运行诶

追答
你是复制过去的,还是手改?
注意这一句
scanf("%s\n",s);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阡陌她人只为你
2015-04-22 · TA获得超过181个赞
知道小有建树答主
回答量:373
采纳率:0%
帮助的人:237万
展开全部
#include <stdio.h>
int main()
{
char s[50];
char *p=s;
int i;
int sum1=0,sum2=0;
printf("请输入一个字符串:");
scanf("%s",s);
for(i=0;*(p+i)!='\0';i++)
{
if((65<=*(p+i)&&*(p+i)<=90)||(97<=*(p+i)&&*(p+i)<=122))
sum1=sum1+1;
else if(48<=*(p+i)&&*(p+i)<=57)
sum2=sum2+1;
}
printf("字母个数为:%d\n ",sum1);
printf("数字个数为:%d\n ",sum2);
return 0;
}
追问
改了之后,输入字符串之后还是不能继续运行诶
追答
你在开玩笑  我的编译器都可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
珏代风华
2015-04-22 · TA获得超过1746个赞
知道小有建树答主
回答量:1119
采纳率:66%
帮助的人:580万
展开全部
字符串不用加取地址符
更多追问追答
追问
删掉取地址符号还是不可以诶
输入一个字符串后就不运行了
追答
可以不用指针
#include
void main()
{
int num1= 0;
int num2= 0;
int i;
char c[100];
scanf("%s",c);
for(i=0;i=48)&&(c[i]=65)&&(c[i]=97)&&(c[i]<=122)) )
num2 ++;
}
printf("The data number = %d\r\n",num1);
printf("The char number = %d\r\n",num2);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式