字符串——学号提取
题目描述
一个字符串中有一个或者两个数字字符表示学生的学号,现在需要你把学号提取出来,
正常来说,学号在一对()之间,并且是在最右边的一对()之间。
但是存在一些不规范的输入,比如abcd(19dk),学号应该是19。
(后是一个数字,否则非法,返回not find。
只有一个0是一个非法学号,输出not find。
功能需求
输入样例:
在这里给出一组输入。例如:
yyde(36sdkf)
输出样例:
在这里给出相应的输出。例如:
36
代码内容
#include<stdio.h>
#define n 30
int main()
{
char a[n];
int i,temp,k=0;
scanf("%s",a);
for(i=0;i<n/2;i++)
{
temp=a[i];
a[i]=a[n-1-i];
a[n-1-i]=temp;
}
for(i=0;i<n;i++)
{
if(a[i]>=')')
{if(a[i+1]>='0'&&a[i+1]<='9')
{
if(a[i+2]>'0'&&a[i+2]<='9'&&a[i+3]=='(')
{
printf("%c%c",a[i+2],a[i+1]);
k=k+1;break;
}
if(a[i+2]=='0'&&a[i+3]=='('&&a[i+1]!='0')
{
printf("%c",a[i+1]);
k=k+1;break;
}
if(a[i+2]=='('&&a[i+1]!='0')
{
printf("%c",a[i+1]);
k=k+1;break;
}
}}
}
if(k==0) printf("not find");
return 0;
}