Упражнение 1.10. Напишите программу, копирующую вводимые
символы в выходной поток с заменой символа табуляции на \t, символа
возврата на \b и каждой обратной наклонной черты на \\. Это сделает
видимыми все символы табуляции и возврата.
#include <stdio.h>
int main()
{
int c;
while((c=getchar()) != EOF)
{
if(c=='\t')
printf("\\t");
if(c=='\b')
printf("\\b");
if(c=='\\')
{
printf("\\");
printf("\\");
}
if(c!='\t' && c!='\b' && c!='\\')
putchar(c);
}
return 0;
}
символы в выходной поток с заменой символа табуляции на \t, символа
возврата на \b и каждой обратной наклонной черты на \\. Это сделает
видимыми все символы табуляции и возврата.
#include <stdio.h>
int main()
{
int c;
while((c=getchar()) != EOF)
{
if(c=='\t')
printf("\\t");
if(c=='\b')
printf("\\b");
if(c=='\\')
{
printf("\\");
printf("\\");
}
if(c!='\t' && c!='\b' && c!='\\')
putchar(c);
}
return 0;
}
Результат:
Хороший сайт, помогает сверится ) Закончу книгу , сам такой же напишу
ОтветитьУдалитьне пойму для чего условие последнее где с!='\t' и так далее и для чего if(c=='\\')
ОтветитьУдалить{
printf("\\");
printf("\\");
}, зачем взято в фигурные скобки если он в общем цикле while.
потому что по условию задачи нужно, чтобы ставило \\ ДВЕ черты, а функция printf("\\") ставит только одну, поэтому функции две, чтобы стояло 2 черты. Именно потому что это единый цикл, следующий после if(c=='\\') его поставили в {}
Удалитьпочему нельзя было вместо if(c!='\t' && c!='\b' && c!='\\') просто написать else?
ОтветитьУдалитьА где ты его тут напишешь? Предлагаешь ко всем if'ам написать? Чепуха получится. К одному if'y? Тоже. Если смог реализовать, то скинь код, аж интересно глянуть.
ОтветитьУдалить#include
Удалитьint main() {
int c;
while ((c = getchar()) != EOF) {
if (c == '\t') {
printf("\\t");
}
else if (c == '\b') {
printf("\\b");
}
else if (c == '\\') {
printf("\\\\");
}
else {
putchar(c);
}
}
return 0;
}