连续输入一批以 # 结束的字符串(字符串的长度不超过80),遇 ## 则全部输入结束。
对每个字符串做如下处理:滤去所有的非十六进制字符后,组成一个新字符串(十六进制形式),然后将其转换为十进制数后输出。
例:括号内是说明
输入:
10#Pf4+1#-+A## (连续输入3个字符串)
输出:
16
3905
10
#include "stdio.h"
#include "math.h"
#define MAXLEN 80
int main( )
{ int i,k,j;
long number;
char ch,oldch,str[MAXLEN], num[MAXLEN];
oldch=' ';
while((ch=getchar())!='#'||oldch!='#'){
k=0;
while(ch!='#'&& k< MAXLEN-1){
str[k++]=ch;
ch=getchar();
}
oldch='#';
str[k]='\0';
j=0;
for(i=0;i<k;i++)
if(str[i]>='0'&&str[i]<='9'||str[i]>='A'&&str[i]<='G'||str[i]>='a'&&str[i]<='g'){
num[j]=str[i];
j++;
}
num[j]='\0';
j--;
number=0;
for(i=0;j>=0;i++){
if(num[i]>='0'&&num[i]<='9')
number=number+(num[i]-'0')*pow(16,j);
if(num[i]>='A'&&num[i]<='G')
number=number+(num[i]-'A'+10)*pow(16,j);
if(num[i]>='a'&&str[i]<='g')
number=number+(num[i]-'a'+10)*pow(16,j);
j--;
}
printf("%ld\n",number);
}
}
对每个字符串做如下处理:滤去所有的非十六进制字符后,组成一个新字符串(十六进制形式),然后将其转换为十进制数后输出。
例:括号内是说明
输入:
10#Pf4+1#-+A## (连续输入3个字符串)
输出:
16
3905
10
#include "stdio.h"
#include "math.h"
#define MAXLEN 80
int main( )
{ int i,k,j;
long number;
char ch,oldch,str[MAXLEN], num[MAXLEN];
oldch=' ';
while((ch=getchar())!='#'||oldch!='#'){
k=0;
while(ch!='#'&& k< MAXLEN-1){
str[k++]=ch;
ch=getchar();
}
oldch='#';
str[k]='\0';
j=0;
for(i=0;i<k;i++)
if(str[i]>='0'&&str[i]<='9'||str[i]>='A'&&str[i]<='G'||str[i]>='a'&&str[i]<='g'){
num[j]=str[i];
j++;
}
num[j]='\0';
j--;
number=0;
for(i=0;j>=0;i++){
if(num[i]>='0'&&num[i]<='9')
number=number+(num[i]-'0')*pow(16,j);
if(num[i]>='A'&&num[i]<='G')
number=number+(num[i]-'A'+10)*pow(16,j);
if(num[i]>='a'&&str[i]<='g')
number=number+(num[i]-'a'+10)*pow(16,j);
j--;
}
printf("%ld\n",number);
}
}
Add a comment



将字符串转换为十进制整数
输出杨辉三角








心情糟糕……
期中之后……
改变……