2015-11-08 2 views
0

Я изучаю C, и у меня возникают проблемы, которые заставляют меня писать (по-видимому) избыточный код. Я нахожу себя писать код, какСочетание утверждений печати в C

printf("%c", someChar); 
printf(" "); 

, который (так как он находится в цикле) будет выводить что-то вроде

a b c 

Есть ли способ объединить эти операторы печати?

+2

'printf ("% c ", someChar);' – jayant

ответ

4

просто написать: printf("%c ", someChar);

примечание пространство после %c

4

Каждый символ, кроме , первый Выход символа в цикле требует ведущего пространства.

for (int x = 0; x < len; x++) 
{ 
    char c = get_next_char(); 
    printf("%s%c", (x==0) ? "" : " ", c); // if (x == 0) then print "%c" else print " %c" 
} 
+0

Можете ли вы дать объяснение этому форматированию (Не логика, только то, что вы сделали с этим% s% c) – jklsfdgs

+0

'% s' - это« строка »и '% c', как вы знаете, это« char ». Это выражение '(x == 0)? "": "" говорит ", если x равно 0, тогда вставьте пустую строку для'% s', иначе вставьте строку с ровно одним пробелом для '% s'. Это имеет смысл? – selbie

0

Вы можете просто поместить пробел после %c в этом случае

printf("%c ", someChar); 

В некоторых других случаях вы можете форматировать вывод используя одиночную инструкцию printf (для сокращения заявлений printf, как вы говорите) с использованием последовательностей escpae, попробовать эти в "", как,

printf("%c\n", someChar); 

\n места новая линия

Некоторые другие \t, \\ и \".

Смежные вопросы