C语言给定一个密钥字符串S,密钥格式化-C语言
#include #define N 100
int main()
{
char array1[N] = "\0";
char array2[N] = "\0";
char array3[N] = "\0";
int i = 0;
int j = 0;
int m = 0;
//字符串中除去‘-’剩下的字符个数
int K;
//密钥
printf("请输入一串字符:\n");
gets(array1);
printf("请输入密钥K:\n");
scanf("%d", &K);
//删掉数组1中的‘-’, 并将其存储到数组2
for(i = 0;
array1[i] != '\0';
i++)//循环录入用户输入的字符串
{
if(array1[i] != '-')
{
array2[j] = array1[i];
//将用户录入的字符串删除-后存储至array2
j++;
}
}
m = strlen(array2);
//计算数字符串组中字符的个数
//将数组2中的数据逆向存储到数组3,方便对其添加‘-’
for(i = 0, j = m - 1;
j >= 0;
j--, i++)//利用循环将array2反向存储至array3
{
array3[i] = array2[j];
}
//利用对密钥K取余,对数组3进行添加‘-’操作
for(i = 0;
i < N;
i++)
{
if(i % (K + 1) == 0 )
{
for(j = N;
j != (i - 1);
j--)
{
array3[j + 1] = array3[j];
}
array3[i] = '-';
}
}
m = strlen(array3);
//若末元素为破折号,则删去
if(array3[m - 1] == '-')
{
array3[m - 1] = "\0";
m = m - 1;
}
//将数组3逆向输出,就是对数组1操作的结果
printf("格式化后的结果是:\n");
for(i = m - 1;
i >= 1;
i--)//利用ASCAII码进行大小写变换
【C语言给定一个密钥字符串S,密钥格式化-C语言】{
if(array3[i] >= 'a' && array3[i] <= 'z')
{
printf("%c", array3[i] - 32);
}
else
printf("%c", array3[i]);
}
return 0;
}
推荐阅读
- CS61b|CS61b proj1a
- C语言|程序环境和预处理 C语言入门到入土(进阶篇)
- C语言|C语言文件操作 C语言入门到入土(进阶篇)
- C语言|一篇解单链表(0基础看)(C语言)《数据结构与算法》
- C语言|一篇解自定义类型(结构体,位段,枚举,联合 C语言入门到入土(进阶篇))
- C语言|(指针)C语言从入门到入土(入门篇)
- C语言|如何让朋友也能玩自己写的游戏(.exe文件如何附带静态链接库)C语言从入门到入土(入门特别篇)
- C语言|C语言总结这一篇就够了(不收藏必后悔系列)
- 前端|记录一次Vue3.0引入ElementPlus之后样式不生效的一个大坑
- C语言中 static 关键字的使用方面总结