добавление целых чисел в виде строк к char [] в цикле - PullRequest
0 голосов
/ 27 декабря 2018

Учитывая следующий пример.

Я кодирую строку, добавляя секретное число к числовому представлению каждого символа.

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

Спасибо

1 Ответ

0 голосов
/ 27 декабря 2018

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

...