c语言问题,如何将字符串中的数字提取

哆啦A梦的口袋
题目描述
大家都知道哆啦A梦有一个神奇的口袋,从那个口袋里可以变出任何东西。不过最近哆啦A梦的口袋里资源比较紧张,只能变出某些符合条件的东西。具体条件如下:
(1)东西的名字仅由字母(大小写均可)、数字组成。(仅由字母组成、仅由数字组成或由字母数字共同组成均可。)
(2)如果名字中有数字,则规定连续的数字构成一个正整数,并且所有构成的正整数都必须是素数。例如,11acm23club包含11和23这两个整数,且都为素数,所以11acm23club可以被变出。
现在给你一个物品清单,请你判断上面哪些东西可以被变出,哪些东西不能被变出。

输入格式
输入包含多组测试数据。
每组第一行输入一个整数n(0<=n<=10),表示东西个数,n=0时,输入结束。
接下来n行,每行输入一个字符串s,表示东西的名字,字符串长度不超过100。里面包含的所有正整数均在32位int范围内,且都大于等于2。
输出
对于每组输入,输出当前这个东西能不能被变出,如果能变出,输出“Yes”,否则输出“No”。
样例输入
2
12acm43club
duolaAmeng
4
1126
acm888club
123acm_club good
13and17
0
样例输出
No
Yes
No
No
No
Yes

1、首先打开visual studio软件,新建一个C语言文件,如下图所示。

2、接着在C语言文件的顶部导入库内容,如下图所示。

3、接着运用scanf函数接收用户输入的字符串。

4、然后利用printf函数打印一下用户输入的内容。

5、运行程序以后就会弹出如下图所示的CMD界面,输入内容就会自动接收到,然后原样输出内容。

6、最后如果接收其他的类型,比如整数,那么类型就需要改变成int,如下图所示,并且scanf里面的接收类型变为d%,提取字符串中的数字。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-12
感觉这有点像我以前做的ACM题目。。。可以利用循环与ASCII码进行比较并提取的追问

就是ACM的题- -,在字符串这块我不太好 旷了几次课

追答

for(啪啪啪) // 应该不用我多讲了,我想以你的基础区区一个for循环应该难不倒你
{
if(数组名[下标] '0') //→_→我是来偷懒的
//输出No,一个一位数比0大又比9小怎么可能会有非数字出现呢
//剩下的你应该可以自己观摩了。字符串这块说白了就是循环加判断,难度并不大,就看你的思路能不能理清楚了,根本思路往下走就行
}

本回答被提问者采纳
相似回答