C语言-实现过滤字符串中的字符并拷贝至新的字符串
#include<stdio.h>
#include<string.h>
int hex_to_oct(char str[]){
}
int main(){
printf("请输入十六进制字符串:");
char x[80]={0};
char s[80]={0};
scanf("%s",x);
char *sour=x;
char *dest=s;
while(*sour)
{
if((*sour >= '0' && *sour <= '9') || (*sour >= 'A' && *sour <= 'F') || (*sour >= 'a' && *sour <= 'f')){
*dest=*sour;
dest++;
}
sour++;
}
*(dest+1)='\0';
int a;
sscanf(s,"%x",&a);
printf("十六进制串%s的值=十进制%d",s,a);
}
1.需要用到的变量及函数
sscanf(char *dest char* format,....)
https://www.cnblogs.com/lewischen/articles/14526477.html中已经提到
这里的套路是可以将16进制转换为10进制,十,十六,八均可互转
char *c="AC45";
int a;
int p=&a;
sscanf(c,"%x",p);
此时a中所存的值即是c的10进制表达
2.重要思路
这里用两个指针分别指向原字符串和目标字符串
原字符串指针在每次循环中指针首地址都增加1
而目标字符串指针只在符合条件的情况下做出操作后再将首地址加1

浙公网安备 33010602011771号