Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
#1

переобразовать текст в 0 и 1 - C++

27.09.2009, 10:38. Просмотров 1586. Ответов 32
Метки нет (Все метки)

прошу прощение если повторяю тему,просто не знаю как правильно вопрос для поиска задать,решил тему откррыть,как мне написать прогу того,чтобы вводимый текст был записан 0ами и 1ами
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2009, 10:38     переобразовать текст в 0 и 1
Посмотрите здесь:

Исправить ошибку! Невозможно переобразовать - C++
Подскажите как исправить ошибку! #include "stdafx.h" #include <iostream> #include <stdio.h> #include <string.h> using...

Считайте текст и выведите на экран исходный текст, а затем только каждое третье предложение - C++
Помогите, пожалуйста!! очень нужно!! Считайте текст и выведите на экран исходный текст, а затем только каждое третье предложение.

Дана строка содержащая текст. Выяснить, входит ли данное слово в указанный текст, и если да, то сколько раз - C++
Дана строка содержащая текст. Выяснить, входит ли данное слово в указанный текст, и если да, то сколько раз

Определить, удовлетворяет ли текст следующему свойству: Текст совпадает с каким то отрезком ряда 0123456789 (например: 2, 678, 89) - C++
Задача В заданный непустой текст входят только цифры и буквы. Определить, удовлетворяет ли он следующему свойству:Текст совпадает с...

Преобразовать исходный текст в текст с выровненными краями - C++
Дан текстовый файл in.txt, содержащий произвольный текст. Получить файл out.txt, содержащий исходный текст с выровненными краями....

Преобразование текст -> двоичный код -> текст - C++
// praci5.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <stdio.h> #include <conio.h> ...

Тема: Строки Найти в тексте для каждого слово букву, которая само чаще встречается. Текст вводится с клавиатуры. Оригинальный текст и результат должны - C++
Найти в тексте для каждого слово букву, которая само чаще встречается. Текст вводится с клавиатуры. Оригинальный текст и результат должны...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
27.09.2009, 10:40     переобразовать текст в 0 и 1 #2
в смысле брал последовательно код каждого символа из строки и переводил его в двоичную СС?
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
27.09.2009, 11:12  [ТС]     переобразовать текст в 0 и 1 #3
M128K145, ну да....
то есть слово HELLO не будет отличать от H E L L O ?

Добавлено через 24 минуты
ну что нету способов никаких?
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
27.09.2009, 11:21     переобразовать текст в 0 и 1 #4
МедведЪ, по-моему,ты не понимаешь,что хочешь. HELLO и H E L L O будут отличаться,это разные строки - как бы ты их не записывал.
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,412
27.09.2009, 11:23     переобразовать текст в 0 и 1 #5
Так ты возьми да напиши сам. Берём какой-нибудь символ. Например 'Z'

1) Смотришь, каким числом он представлен в памяти. Таблицу кодировки найди. Это число будет 90

2) Представляешь число Z в шестнадцатиричном формате. Как думай сам. Это будет 5A

3) Потом представляешь это число в двоичном формате. Тут просто. Каким бы длинным ни было шестнадцатиричное число, просто разбивай его на цифры и вместо каждой цифры пиши соответвующую последовательность нолей и единиц

Так, вместо 5 пиши 101, вместо A 1010. Получается 1011010. Вот и всё.
Цифр в шестнадцатиричном числе всего 16, какая последовательность нолей и единиц какой цифре соответствует, сообрази сам.
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
27.09.2009, 11:36     переобразовать текст в 0 и 1 #6
МедведЪ, вот
дубовый вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <iostream>
 
int main()
{
    setlocale(LC_ALL, "Russian");
    char *text = "text";
    size_t n = strlen(text);
    int *mas = new int[n];
    int buf;
    for(size_t i = 0; i < n; ++i)
    {
        mas[i] = 0;
        buf = (int)text[i];
        std::cout<<buf<<'\t';
        if(buf >= 128)
        {
            mas[i] = 1;
            buf -= 128;
        }
        if(buf >= 64)
        {
            mas[i] *= 10;
            ++mas[i];
            buf -= 64;
        }
        else
            mas[i] *= 10;
        if(buf >= 32)
        {
            mas[i] *= 10;
            ++mas[i];
            buf -= 32;
        }
        else
            mas[i] *= 10;
        if(buf >= 16)
        {
            mas[i] *= 10;
            ++mas[i];
            buf -= 16;
        }
        else
            mas[i] *= 10;
        if(buf >= 8)
        {
            mas[i] *= 10;
            ++mas[i];
            buf -= 8;
        }
        else
            mas[i] *= 10;
        if(buf >= 4)
        {
            mas[i] *= 10;
            ++mas[i];
            buf -= 4;
        }
        else
            mas[i] *= 10;
        if(buf >= 2)
        {
            mas[i] *= 10;
            ++mas[i];
            buf -= 2;
        }
        else
            mas[i] *= 10;
        if(buf > 0)
        {
            mas[i] *= 10;
            ++mas[i];
        }
        else
            mas[i] *= 10;
        std::cout<<mas[i]<<'\n';
    }
 
    system("pause");
    return 0;
}
, но работает примерно правильно
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
27.09.2009, 12:15     переобразовать текст в 0 и 1 #7
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <locale.h>
#include <string.h>
    
void binPrn(int c){
    if ( c / 2 )
        binPrn(c / 2);
    putchar(c % 2 + '0');
}
 
int main(){
    char buf[BUFSIZ];
    int i, len;
    
    setlocale(LC_ALL, ".1251");
    while ( fgets(buf, BUFSIZ, stdin) ){
        len = strlen(buf);
        buf[--len] = 0;
        for ( i = 0; i < len; i++ )
            binPrn((unsigned char)buf[i]);
        putchar('\n');
    }
    return 0;
}
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
27.09.2009, 12:36  [ТС]     переобразовать текст в 0 и 1 #8
easybudda, прокомментируй тут

Добавлено через 9 минут
например что тут функция похожаяя на getchar?
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
27.09.2009, 12:53     переобразовать текст в 0 и 1 #9
МедведЪ, А с какого места не понятно? Функция binPrn печатает свой аргумент в двоичном виде (обсуждалось не так давно тут на форуме). buf - строка, прочитанная из консоли. Вместо
C
1
2
len = strlen(buf);
buf[--len] = 0;
можно просто
C
1
len = strlen(buf) - 1;
написать (fgets символ \n в конце строки оставляет). Можно было бы и так
C
1
for ( i = 0; i < strlen(buf) - 1; i++ ){
написать, но это как-раз дурной стиль - strlen при каждом проходе считалась бы. А дальше - каждый символ передаётся binPrn, как unsigned char. Если преобразования не делать, будут неправильно символы с кодами 128+ обрабатываться. Да и всё, собственно...
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
27.09.2009, 13:05  [ТС]     переобразовать текст в 0 и 1 #10
easybudda, а как делать что бы с файла читало??...я просто не понимаю что надо gect(f) поставить....поставил вместо unsigned char,ошибка...я просто не могу понять где что и как
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
27.09.2009, 13:27     переобразовать текст в 0 и 1 #11
Цитата Сообщение от МедведЪ Посмотреть сообщение
а как делать что бы с файла читало?
а вот так!
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <locale.h>
#include <string.h>
#include <stdlib.h>
    
void binPrn(int c){
    if ( c / 2 )
        binPrn(c / 2);
    putchar(c % 2 + '0');
}
 
int main( int argc, char **argv ){
    FILE *inp;
    char buf[BUFSIZ];
    int i, len;
    
    if ( argc < 2 ){
        setlocale(LC_ALL, ".1251");
        inp = stdin;
    }
    else{
        if ( (inp = fopen(argv[1], "r") ) == NULL ){
            fprintf(stderr, "%s: Can't open file %s\n", argv[0], argv[1]);
            exit(1);
        }
    }
    
    while ( fgets(buf, BUFSIZ, inp) ){
        len = strlen(buf) - 1;
        for ( i = 0; i < len; i++ )
            binPrn((unsigned char)buf[i]);
        putchar('\n');
    }
    return 0;
}
запустишь без параметров - будет из консоли читать, запустишь так
Код
prog.exe file.txt
будет из файла читать... Опять же, можно и первую програмку вот так
Код
prog.exe < file.txt
запустить...
...
Засомневался по поводу пересчёта strlen(buf) при каждом проходе в цикле
C
1
for ( i = 0; i < strlen(buf) - 1; i++ ){
ну в любом случае - с переменной и нагляднее, и точно ничего пересчитываться каждый раз не будет...
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
27.09.2009, 14:34  [ТС]     переобразовать текст в 0 и 1 #12
мда...придется хорошоенько и много читать этот код чтобы понять этот код...
но спасибо все равно
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
27.09.2009, 14:35     переобразовать текст в 0 и 1 #13
Цитата Сообщение от easybudda Посмотреть сообщение
Засомневался по поводу пересчёта strlen(buf) при каждом проходе в цикле
зря сомневался
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
#include <string.h>
    
/* попытка понять, как считается условие в операторе for
    для пробы устроим цикл, в котором длинна строки будет уменьшаться
*/
 
int main(void){
    char buf[] = "ABCDEF";
    int i, l;
    
 
    l = strlen(buf);
/* Если strlen считается только один раз, строка должна обнулиться до А,
    в противном случае останутся символы ABC
*/
    for ( i = 0; i < strlen(buf); i++ )
        buf[l - i] = 0;
    if ( buf[1] == 0 )
        printf("strlen считается один раз\n");
    else if ( buf[1] == 'B' )
        printf("strlen считается КАЖДЫЙ раз в начале цикла\n");
    else 
        printf("хз чё тут тварится!\n");
        
    return 0;
}
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
27.09.2009, 17:25     переобразовать текст в 0 и 1 #14
Есть почти стандартная функция itoa() которая умеет переводить число в любую заданную систему счисления. Например в двоичную
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
27.09.2009, 18:53  [ТС]     переобразовать текст в 0 и 1 #15
odip, а как использовать?
напр
C++
1
itoa(10);
хотя тут я не указал в какую сис-му переводить
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
27.09.2009, 19:02     переобразовать текст в 0 и 1 #16
http://ru.wikipedia.org/wiki/Itoa_(Си)
C
1
2
3
#include <stdlib.h>
 
char *itoa(int value, char* str, int base);
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
27.09.2009, 19:42  [ТС]     переобразовать текст в 0 и 1 #17
odip, спасибо большое,а нельзя ли текст,извините за глупый вопрос,просто я с ноута щас сижу,нету тут VS08
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
27.09.2009, 20:21     переобразовать текст в 0 и 1 #18
Текст чего ?
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
27.09.2009, 21:25  [ТС]     переобразовать текст в 0 и 1 #19
Цитата Сообщение от odip Посмотреть сообщение
которая умеет переводить число
вместо числа-мой текст...например из массива или файла,к пример Hello world?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2009, 21:31     переобразовать текст в 0 и 1
Еще ссылки по теме:

Как переопределить текст в исходнике (текст, как идентификатор)? - C++
Здравствуйте, товарищи кодеры. Помогите товарищу по оружию, дельным советом. Мне нужно заменить текст в исходнике. Как вариант #define...

Переобразовать текст в дату - MS Access
Нужна помощь есть таблица где в Поле2 записи в текстовом формате &quot;01/Apr/2013:06:20:30 &quot; без кавичок , нужна в запросе переобразовать в...

JSON переобразовать в JS - C# MVC
Я в view передал модель. Модель имеет в себе еще один объект, который, и содержит нужный масив. Ошибка в том что на js все масивы =...

Переобразовать xmcd в mcdx - MathCAD
Здравствуйте всем, не ставится маткад 15, а завтра сдавать лабы, кто может проконвертируйте мне пару файликов, буду очень благодарен)

Переобразовать void в int - C++ Builder
Как переобразовать void в int???:popcorn:


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
27.09.2009, 21:31     переобразовать текст в 0 и 1 #20
C
1
2
3
4
5
6
7
8
9
char *str= "Hello, world";
char buf[80];
 
for ( i= 0; str[i]!='\0'; i++ ) {
    itoa( (unsigned char)str[i], buf, 2 );
    // тут нужно добавить в buf слева нужное кол-во нулей - чтобы дополнить до 8 цифр !
    printf( "%s", buf );
}
printf( "\n" );
Yandex
Объявления
27.09.2009, 21:31     переобразовать текст в 0 и 1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru