检测字符串中是否含数字
本帖最后由 122Ml 于 2020-8-3 10:18 编辑#include <stdio.h>
int main()
{
int count,i;
char name;
printf("请输入数值!:\n");
scanf("%d",name);
for(i=0;i<50;i++)
{
if(name==1,2,3,4,5,6,7,8,9)
{
count++;
printf("测试\n");
}
}
if(count==0)
{
printf("并未找到任何数值!\n");
}
return 0;
}
目的:检测输入字符串中是否含有数字,如果不含,则打印“并未找到任何数值”
测试时,一直打印“测试”,name一直等于1到9?
求大神帮助 #include <stdio.h>
int main()
{
int count, i;
char name;
printf("请输入数值!:\n");
scanf("%s", name);
for (i = 0; i < 50; i++)
{
if (name >= '1' && name <= '9')
{
count++;
printf("测试\n");
}
}
if (count == 0)
{
printf("并未找到任何数值!\n");
}
return 0;
} 可能是我name==1,2,3,4,5,6,7,8,9错了吧
122Ml 发表于 2020-8-3 10:20
可能是我name==1,2,3,4,5,6,7,8,9错了吧
那块确实错了,不能这样判断 zltzlt 发表于 2020-8-3 10:19
还有一个问题,我输入一个数字,检测结果出现三个“测试”;输入任意字符,出现两个“测试”,这是什么原因 122Ml 发表于 2020-8-3 10:25
还有一个问题,我输入一个数字,检测结果出现三个“测试”;输入任意字符,出现两个“测试”,这是什么原 ...
你用 %d 来输入字符串只能得到魔法。 122Ml 发表于 2020-8-3 10:25
还有一个问题,我输入一个数字,检测结果出现三个“测试”;输入任意字符,出现两个“测试”,这是什么原 ...
不能使用 %d 输入字符串 永恒的蓝色梦想 发表于 2020-8-3 10:27
你用 %d 来输入字符串只能得到魔法。
没啊,改了%s还是这个问题
scanf("%s", name);
本帖最后由 baige 于 2020-8-3 10:43 编辑
#include <stdio.h>
int main()
{
int count = 0,i = 0;//count没有初始化
char name;
printf("请输入数值!:\n");
scanf("%s",name);//字符串数组用%s
while(name!='\0')
{
if(name>='0'&&name<='9')
{
count++;
printf("测试\n");
}
++i;
}
if(count==0)
{
printf("并未找到任何数值!\n");
}
printf("一共有%d数字",count);
return 0;
}
本帖最后由 sunrise085 于 2020-8-3 10:42 编辑
还有一个问题,我输入一个数字,检测结果出现三个“测试”;输入任意字符,出现两个“测试”,这是什么原因
这个问题是因为你的for循环导致的,当你输入不足50个的时候,后面的内容是不确定的。有可能就会出现符合条件的数字,所以不能用for循环,应该用while循环
#include <stdio.h>
int main()
{
int count,i;
char name;
printf("请输入数值!:\n");
scanf("%s",name);//这里应该用%s输入,因为你定义的是一个字符串数组
i=-1;
count=0;
while(name[++i]!='\0')//这里不应该用你定义的长度来进行循环,应该按照你输入的长度进行循环
{
if(name>='1' && name<='9')//这里应该判断第i个字符是否在'1' '9' 之间
{
count++;
printf("测试\n");
}
}
printf("i=%d,count=%d\n",i,count);//这里帮你添加了一个输出,可以看看结果
if(count==0)
{
printf("并未找到任何数值!\n");
}
return 0;
} baige 发表于 2020-8-3 10:31
emmmmm还是有个小问题:输入单个数字时,count依然等于0 122Ml 发表于 2020-8-3 10:36
emmmmm还是有个小问题:输入单个数字时,count依然等于0
修改了, sunrise085 发表于 2020-8-3 10:34
这个问题是因为你的for循环导致的,当你输入不足50个的时候,后面的内容是不确定的。有可能就会出现符合 ...
谢啦!超级详细!
页:
[1]