湖南科技大学2018年C语言程序设计实验题——问题 H: 新年红包
时间限制: 1 Sec 内存限制: 128 MB
题目描述
首先预祝大家新年快乐!红包多多!
程序员的红包与众不同,有无红包以及红包的金额隐藏的一个字符串中,请你解析。
字符串中如果存在2个连续出现的字符’h’和’b‘('h’和’b’不区分大小写),则紧随其后必会出现几个连续的数字字符,这几个连续数字字符表示红包的金额。请输出红包金额。
字符串中如果不存在2个连续出现的字符’h’和’b‘('h’和’b’不区分大小写),由输出“No red packet"。
输入
输入仅一行字符串。字符串中的字符个数不超过100。
字符串仅由英文字符和数字字符构成。
输出
字符串中如果存在2个连续出现的字符’h’和’b‘('h’和’b’不区分大小写),则紧随其后必会出现几个连续的数字字符,这几个连续数字字符表示红包的金额。请输出红包金额。
字符串中如果不存在2个连续出现的字符’h’和’b‘('h’和’b’不区分大小写),由输出“No red packet"。
样例输入
abcdHb280abc68a
样例输出
280
解决代码
#include <stdio.h>
#include <ctype.h>
int main()
{
char a[150];
int i,j,flag=0;
gets(a);
for(i=0; a[i]!='\0'; i++)
if(a[i]>=65&&a[i]<=90)
a[i]=a[i]+32;
for(i=0; a[i]!='\0'; i++)
if(a[i]=='h'&&a[i+1]=='b')
{
flag=1;
for(j=i+2;a[j]>=48&& a[j]<=57; j++)
printf("%c",a[j]);
return 0;
}
if(flag==0)
printf("No red packet");
return 0;
}