c语言异或操作
请问我有两个字符串比如char*a="0000400000123456"char*b="0592389FFFFFFFF"进行异或或得到的char*c="0592789FF...
请问我有两个字符串比如char *a="0000400000123456" char *b="0592389FFFFFFFF" 进行异或或得到的char *c="0592789FFFEDCBA9";怎么用c语言实现?
展开
展开全部
你是打算对数字进行异或,需要将字符变成数字,异或完后再变回字符
我只简单写了一下,没有异常处理,顺便说你b中F少了一个
#include <stdio.h>
int ctoi(char c)
{
if(c>='0'&&c<='9')
return c-48;
else if(c>='A'&&c<='F')
return c-55;
else if(c>='a'&&c<='f')
return c-87;
else
return -1;
}
char itoc(int i)
{
if(i>=0&&i<=9)
return i+48;
else if(i>=10&&i<=15)
return i+55;
else
return 0;
}
int main()
{
char *a="0000400000123456";
char *b="0592389FFFFFFFFF";
char *c="0000000000000000";
int i=0;
int ai,bi,ci;
while(a[i])
{
ai=ctoi(a[i]);
bi=ctoi(b[i]);
ci=ai^bi;
c[i]=itoc(ci);
i++;
}
printf("%s\n",c);
return 0;
}
我只简单写了一下,没有异常处理,顺便说你b中F少了一个
#include <stdio.h>
int ctoi(char c)
{
if(c>='0'&&c<='9')
return c-48;
else if(c>='A'&&c<='F')
return c-55;
else if(c>='a'&&c<='f')
return c-87;
else
return -1;
}
char itoc(int i)
{
if(i>=0&&i<=9)
return i+48;
else if(i>=10&&i<=15)
return i+55;
else
return 0;
}
int main()
{
char *a="0000400000123456";
char *b="0592389FFFFFFFFF";
char *c="0000000000000000";
int i=0;
int ai,bi,ci;
while(a[i])
{
ai=ctoi(a[i]);
bi=ctoi(b[i]);
ci=ai^bi;
c[i]=itoc(ci);
i++;
}
printf("%s\n",c);
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询