给出以下示例。
我通过在每个字符的数字表示形式中添加一个秘密数字来对字符串进行编码。
A -> 41 = 65 + secret
B -> 42 = 66 + secret
1 -> 31 = 49 + secret
2 -> 32 = 50 + secret
and so on
所以结果将有几个数字。我可以使用
打印它们for(int i=0; i<len; i++) {
int e = ( (int)caracter + pub ) % mod;
printf("%d ", e);
}
但是我如何将所有这些数字加到像这样的字符串中
123465 123466 123449 123450
谢谢
答案 0 :(得分:1)
https://www.tutorialspoint.com/c_standard_library/c_function_sprintf.htm
http://www.cplusplus.com/reference/cstdio/sprintf/
请注意缓冲区大小。您可以溢出。
示例:
#include <stdio.h>
#include <stdlib.h>
int main() {
int e[5] = {12,34,78,33,15577};
int n = 5;
int len = 0;
int i = n;
while (i--) len += snprintf(NULL, 0, "%d ", e[i]);
char* str = (char*)malloc(sizeof(char)*len);
char* str_cur = str;
i = n;
while (i--) str_cur += sprintf(str_cur, "%d ", e[i]);
printf("%s",str);
return 0;
}
返回
15577 33 78 34 12