-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEncryption
More file actions
36 lines (35 loc) · 761 Bytes
/
Encryption
File metadata and controls
36 lines (35 loc) · 761 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
char* encryption(char* s) {
int len=0;
for(int i=0;s[i];i++){
if(s[i]!=' '){
s[len++]=s[i];
}
}
s[len]='\0';
double sqrt_len= sqrt(len);
int rows=(int)floor(sqrt_len);
int cols=(int)ceil(sqrt_len);
if (rows * cols <len){
rows++;
}
int result_size =len+cols+1;
char* result=malloc(result_size);
int pos=0;
for(int c=0;c<cols;c++){
for(int r=0;r<rows;r++){
int idx=r*cols+c;
if(idx<len){
result[pos++]=s[idx];
}
}
result[pos++]=' ';
}
if(pos>0 && result[pos-1]==' '){
pos--;
}
if(pos>0 && result[pos-1]==' '){
pos--;
}
result[pos]='\0';
return result;
}