2015-02-11 3 views
2

Прежде чем я задам свой вопрос, позвольте мне сказать, что я новичок на C, и не знаю, как это сделать.C - Multiply char by int

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

x = 5  
print('#' * x) 

Это то, что я хочу достичь, но в C. К сожалению, если это дубликат или глупый вопрос, но я был озадачен и без ответа, даже после просмотра в Интернете.

+1

К сожалению, C является низкоуровневым системным языком. На самом деле даже нет «строк» ​​в качестве типа данных. Вы должны сделать все это самостоятельно: выделите массив символов, скопируйте в него символы с помощью цикла, даже добавьте нулевой терминатор в конец. Нет ярлыков. –

ответ

3
for (size_t ii = 0; ii < 5; ++ii) 
    putchar('#'); 
+0

Никогда не знал о функции putchar раньше, спасибо! – Argarak

2

Используйте цикл, чтобы распечатать его несколько раз.

В C, символ между '' имеет тип char, символ, не строку. char - это числовой тип, такой же, как int, но короче. Он содержит численное представление символа (код ASCII). Умножая его на целое число, вы получаете целое число.

Строка, содержащаяся между "" представляет собой массив символов. Переменная будет хранить указатель первому символу.

+6

В символьных константах C имеют тип 'int'. Вы, вероятно, путаетесь с C++. –

+1

Ну, я мог бы упростить. Но объяснение того, что представляет собой поведение, определяемое реализацией и как оно должно работать для «ab» или для многобайтовых символов, не относится к этому вопросу. Для любопытных, http://stackoverflow.com/questions/20764538/type-of-character-constant – ftynse

+1

@ftynse: Тип символьных констант не определяется реализацией. Это всегда * 'int' (C99,' 6.4.4.4p10'); для широких констант это 'wchar_t' (' p11'). –

0

Прежде всего, использование printf функция. Это позволяет вам форматировать свой вывод так, как вам нравится. Для получения результата вам нужен цикл for.

int i, x = 5; 
for (i = 0; i < x; i++) 
    printf("#"); 
+0

Использование 'printf' в цикле для печати отдельных символов является излишним; здесь 'putchar' было бы достаточно. – Arkku