运算符的妙用
- 简单字符串加密
- 实现两个变量互换,不借助第三个变量
- 三目运算
- 实现用宏定义 实现值互换
简单字符串加密
printf("请输入要加密的字符串\n");
char chStr[32] = {0};
scanf("%[a-z]",chStr);
printf("加密前字符串:%s\n\n",chStr);
int nLength = strlen(chStr);
while (1)
{
printf("加密请按1 解密请按2 退出请按3\n");
int nIndex = 0;
scanf("%d", &nIndex);
if (nIndex == 1)
{
for (int i = 0; i < nLength; i++)
{
chStr[i] = chStr[i] + i + 5;
}
printf("加密后字符串:%s\n", chStr);
}
else if (nIndex == 2)
{
for (int i = 0; i < nLength; i++)
{
chStr[i] = chStr[i] - i - 5;
}
printf("解密字符串:%s\n", chStr);
}
else if (nIndex == 3)return 0;
printf("\n\n");
}
system("pause");
实现两个变量互换,不借助第三个变量
int a = 18;
int b = 10;
a = a ^ b;
b = a ^ b;
a = a ^ b;
三目运算
int nTemp = 0;
printf("请输入0或1,0代表女,1代表男\n");
while (1)
{
scanf("%d",&nTemp);
if (nTemp == 2 || nTemp > 2)break;
nTemp == 0 ? printf("女的\n") : printf("男的\n");
}
实现用宏定义 实现值互换
#define swap(a,b) {int c=0;a=c;a=b;b=c;}也可以这种写法
#define swap(a,b) a=a^b;b=a^b;a=a^b;
int Arraya[] = { 5,6,7,8,9 };
int Arrayb[] = {10,11,12,13,14};
for (int i = 0; i < 5; i++)
{
swap(Arraya[i],Arrayb[i]);
}