Главная » 2010 » Март » 6 » 1.5.3. Подсчет строк. Упражнение 1.10.
19:58
1.5.3. Подсчет строк. Упражнение 1.10.
Упражнение 1.10. Напишите программу для копирования входного потока в выходной с заменой знаков табуляции на \t, символов возврата назад (Backspace) на \b, а обратных косых черт - на \\. Это сделает табуляции и символы возврата легко читаемыми в потоке.
/* замена знаков табуляции на \t, символов возврата назад на \b, обратных косых черт на \\ */
#include"stdafx.h"
int main()
{
int c;
while ((c = getchar()) != EOF) {
/* если c - табуляция, печатаем \t */ if(c == '\t')
printf("\\t");
/* если c - символ возврата назад, печатаем \b */ if(c == '\b')
printf("\\b");
/* если c - обратная косая черта, печатаем \\ */ if(c == '\\')
Упражнение 2.6. Напишите функцию setbits (x,p,n,y) так, чтобы она возвращала аргумент х, в котором п битов, начиная с позиции р, равны п крайним правым битам аргумента у, а остальные биты не тронуты.
Код
#include <stdio.h> #define MAXNUM 0X11
unsigned setbits(unsigned x, int p, int n, unsigned y);
int bin_to_dec(char num[]);
int main(){
int x = bin_to_dec("0000100000000000"); int y = bin_to_dec("00000011"); int p=7; int n=4;
x=setbits(x,p,n,y);
printf("%d\n", x); return 0; }
unsigned setbits(unsigned x, int p, int n, unsigned y){ return x | (y&~(~0<<n))<<(p+1-n); }