openlang

Преобразование массива целых чисел в строку C

Пытаюсь превратить элементы массива целых чисел в строку на C. Вот пример того, что я делаю:

int digits[] = {2,4,3,0};
char text[6];
for (int pos=0; pos<4; ++pos) {
    text[pos]=digits[pos];
}
printf("%s",text);

Но вместо этого появляются сердечки или улыбающиеся лица, и я не понимаю почему.

Переведено с английскогоПоказать оригинал

Разговор продолжается 2

Следуя доводам
  1. Ссылка на ответ

    При выводе символов printf использует символ ASCII с соответствующим числовым кодом (https://www.rapidtables.com/code/text/ascii-table.html).

    Значениям 2, 4, 3, 0 соответствуют STX, EOT, ETX, то есть непечатаемые символы.

    Например, возьмите вместо них 67, 68, и получите буквы.

    Переведено с английскогоПоказать оригинал
  2. Ссылка на ответ

    Показанная программа ничего вывести не может, потому что она не компилируется.

    Неясно, чего вы хотите добиться, но рассмотрите такой пример:

    int main(void) {
        int digits[] = {2, 4, 3, 0};
        char text[sizeof(digits) / sizeof(digits[0]) + 1] = {0,};
        char pieces[sizeof(digits) / sizeof(digits[0])][12];
        for (int pos = 0; pos < 4; pos ++ ) {
            text[pos] = digits[pos] % 10 + '0';
            snprintf(pieces[pos], 12, "%d", digits[pos]);
        }
        printf("%s\n", text);
        for (int pos = 0; pos < 4; pos ++ ) {
            printf("%s\n", pieces[pos]);
        }
    }
    Переведено с английскогоПоказать оригинал

Другие стороны того же вопроса

  1. Как экранировать проценты при вызове String.Format?

    В файле strings.xml у меня хранится SQL-запрос, и я пытаюсь построить итоговую строку в коде через String.Format. Запрос SELE…

    Ответы 3Последняя активность java
  2. Форматирование строк в F#

    Впервые делаю библиотеку на F# При использовании string.Format получаю сообщение, что такой функции не существует. Я что-то д…

    Ответы 2Последняя активность fsharp
  3. Извлечение одной части строки в tcl

    В tcl я пытаюсь разделить Reports/Report#2.rpt и оставить только Report#2.rpt ; попробовал такой способ, но при выполнении он…

    Ответы 2Последняя активность tcl