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

Кто знает как написать прогу замены пробелов на \t - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
citrus2
Сообщений: n/a
26.01.2012, 00:20     Кто знает как написать прогу замены пробелов на \t #1
Так звучит задание:
Символи новой строки и табуляции в s превратить на видимые последовательности букв \n и \t в t (другие буквы оставить без изменений)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2012, 00:20     Кто знает как написать прогу замены пробелов на \t
Посмотрите здесь:

C++ кто знает как решить?
кто знает как решить C++
C++ кто знает как?
C++ Кто знает как решить на C++ :(((
C++ Кто нибудь знает как написать игру на С ?)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Serejke_qq
 Аватар для Serejke_qq
149 / 107 / 9
Регистрация: 06.07.2011
Сообщений: 224
Завершенные тесты: 2
26.01.2012, 00:36     Кто знает как написать прогу замены пробелов на \t #2
смутило немного ..
но если
Цитата Сообщение от citrus2 Посмотреть сообщение
последовательности букв \n и \t в t
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    string str = "adada \n dadad\t qowr orqw";
 
    for(int i=0; i<str.length(); i++)
        if(str[i] == '\t' || str[i] == '\n')  str[i] = 't';    // pfffff
 
    cout << str;
 
    return 0;
}

Не по теме:

определитесь более точно с заданием.. там пробелы, там в видимые символы, там в символ t..

igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
26.01.2012, 01:10     Кто знает как написать прогу замены пробелов на \t #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <string.h>
 
int main ()
{
    char* s = "\t\nMdfg \nkhjf \n\t", t[256], *p = t, *pn = "\\n", *pt = "\\t";
    for(; *p = *s; ++s, ++p)
    {
        if('\n' == *p || '\t' == *p)
        {
            strcpy(p++, '\n' == *p ? pn : pt);
        }
    }
    puts(t);
    return 0;
}
-=ЮрА=-
Заблокирован
Автор FAQ
26.01.2012, 10:49     Кто знает как написать прогу замены пробелов на \t #4
Ниже вариант с использованием методов std::string. Данные читаются из файла text.txt
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
#include <iostream>
#include <fstream>
#include <string> 
using namespace std;
 
int main()
{
    char symbol;
    string text;
    string line;
    
    ifstream ifs("text.txt");
    if(!ifs)
        cout<<"Error open text.txt\n";
    else
    {
        cout<<"Input text :\n";
        while(getline(ifs,line))
            text += line;
        cout<<text.c_str()<<endl;
        ifs.close();
        for(int i = 0; i < text.length(); i++)
        {
            if(text[i] == '\t' || text[i] == '\n')
            {
                symbol = 'n';
                if(text[i] == '\t')
                    symbol = 't';
                text[i] = '\\';
                text.insert(i + 1,1,symbol);
            }
        }
        cout<<"Transformed text :\n"<<text.c_str()<<endl;
    }
    system("pause");
    return 0;
}
text.txt
gfdg sdf sdfsf lfsl lslfllsf
sdf ;dfs ;fd;sf;d;s g.dfg ;fsd;f
sf;f;sd
sdfsf

sd;f;sdf; ;f;dg
;fg;g;d
Миниатюры
Кто знает как написать прогу замены пробелов на \t  
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
26.01.2012, 11:03     Кто знает как написать прогу замены пробелов на \t #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <string>
#include <iostream>
#include <algorithm>
 
int main()
{
   std::string s = "the\tquick\tbrown\tfox\njumps\tover\tthe\tlazy\tdog";
   std::cout << s << std::endl;
   
   std::replace_if(std::begin(s), std::end(s), 
                  [](const char ch) 
                  {
                     return ch == '\t' || ch == '\n';
                  },
                  't'
   );
   
   std::cout << s << std::endl;
}
-=ЮрА=-
26.01.2012, 11:05
  #6

Не по теме:

fasked, задание подразумевает написать "\t" вместо '\t' а так прикольно...

fasked
26.01.2012, 11:08
  #7

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
задание подразумевает написать "\t" вместо '\t' а так прикольно...
Да задание же как всегда черт пойми как сформулировано

-=ЮрА=-
26.01.2012, 11:21
  #8

Не по теме:

Цитата Сообщение от fasked Посмотреть сообщение
Да задание же как всегда черт пойми как сформулировано
- ну это да
Вобще как пожелание для форума - думаю надо в форме создания темы в самом верху ввести комбо-бокс с обязательным выбором языка и указанием предпочтительного типа компилятора.
Иногда приходится лишь по скудным хелпам ТС о том что приведенный код не идёт, угадывать в чём же он кодит

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2012, 11:57     Кто знает как написать прогу замены пробелов на \t
Еще ссылки по теме:

C++ Кто знает как сделать
C++ Кто знает как из DEVc++ транслировать в C++?
Кто знает как запустить C++

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

Или воспользуйтесь поиском по форуму:
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
26.01.2012, 11:57     Кто знает как написать прогу замены пробелов на \t #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
#include <map>
 
int main()
{
    std::string s;
    std::cout << "string: ";
    std::getline(std::cin, s, '.');
 
    size_t pos = 0;
    std::map<char, std::string> m = {{'\n', "\\n"}, { '\t', "\\t"}};
 
    while((pos = s.find_first_of("\n\t", pos)) != std::string::npos)
        s.replace(pos, 1, m[s[pos]]);
 
    std::cout << s << std::endl;
}
Yandex
Объявления
26.01.2012, 11:57     Кто знает как написать прогу замены пробелов на \t
Ответ Создать тему
Опции темы

Текущее время: 13:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru