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

Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2. - C++

Восстановить пароль Регистрация
 
(SkyNet)
 Аватар для (SkyNet)
22 / 40 / 6
Регистрация: 25.10.2011
Сообщений: 175
07.11.2011, 21:56     Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2. #1
а если не сложно то можно функцию
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2011, 21:56     Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2.
Посмотрите здесь:

C++ Написать программу, которая в строке заменяет все цифры на символ «*»
C++ написать программу, которая в произвольной строке ищет все числа в десятичной системе счисления(в соответствии со стандартом языка си) и заменяет их
заменить в строке все вхождения подстроки str1 на подстроку str2 C++
заменить все вхождения подстроки str1 на подстроку str2; строка str1 вводится из файла, а строка str2 с клавиатуры C++
C++ Функцию, которая получает два параметра str1 и str2 типа string и возвращает позицию начала последнего появления str2 в str1
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Xind
275 / 148 / 7
Регистрация: 05.11.2011
Сообщений: 425
Записей в блоге: 1
07.11.2011, 22:26     Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2. #2
(SkyNet), 10-й пример поможет http://clc-wiki.net/wiki/K%26R2_solutions:Chapter_1
Там есть ответы и ну другие задачи)
(SkyNet)
 Аватар для (SkyNet)
22 / 40 / 6
Регистрация: 25.10.2011
Сообщений: 175
08.11.2011, 01:15  [ТС]     Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2. #3
Вобше не то и ищё по английски
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
08.11.2011, 01:53     Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2. #4
и по английски???
igorrr37
 Аватар для igorrr37
1594 / 1222 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
08.11.2011, 09:57     Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2. #5
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
#include <stdio.h>
#include <string.h>
 
void Replace(char* dest, const char* text)
{
   char* enter = "enter", *tab = "tab";
   size_t enterLen = strlen(enter), tabLen = strlen(tab);
   for(; *dest = *text; ++text, ++dest)
   {
      if( !strncmp(text, enter, enterLen))
      {
         *dest = '\n';
         text += (enterLen - 1);
      }
      else if( !strncmp(text, tab, tabLen))
      {
         *dest = '\t';
         text += (tabLen - 1);
      }
   }
}
 
int main (){
    char* text = ",enter  ente rtab,tab,enter bta.", dest[256];
    Replace(dest, text);
    puts(dest);
    return 0;
}
(SkyNet)
 Аватар для (SkyNet)
22 / 40 / 6
Регистрация: 25.10.2011
Сообщений: 175
08.11.2011, 20:04  [ТС]     Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2. #6
всё так и не так я под ентером и табом не назву их имел а их функцию

Добавлено через 31 минуту
Цитата Сообщение от igorrr37 Посмотреть сообщение
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
#include <stdio.h>
#include <string.h>
 
void Replace(char* dest, const char* text)
{
   char* enter = "enter", *tab = "tab";
   size_t enterLen = strlen(enter), tabLen = strlen(tab);
   for(; *dest = *text; ++text, ++dest)
   {
      if( !strncmp(text, enter, enterLen))
      {
         *dest = '\n';
         text += (enterLen - 1);
      }
      else if( !strncmp(text, tab, tabLen))
      {
         *dest = '\t';
         text += (tabLen - 1);
      }
   }
}
 
int main (){
    char* text = ",enter  ente rtab,tab,enter bta.", dest[256];
    Replace(dest, text);
    puts(dest);
    return 0;
}
Вобше не то!!! Надо чтоб заминила ентери и табы на символы "\n", "\t" имено что ввиводило ети симмволи на местах пробелов и ентеров, и строки назвать надо правильно str1 и str2 а то сложно разобраться
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.11.2011, 20:28     Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2. #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
25
26
27
28
#include <iostream>
#include <cstring>
 
int main()
{
    std::string srcStr = "ready\tset\nplant";
    std::string rsltStr;
    std::cout << srcStr << std::endl << std::endl;
    for(int i = 0; i < srcStr.length(); ++i)
        switch(srcStr[i])
        {
            case('\n'):
                rsltStr += '\\';
                rsltStr += 'n';
                break;
                
            case('\t'):
                rsltStr += '\\';
                rsltStr += 't';
                break;
                
            default:
                rsltStr += srcStr[i];
                break;
        }
    std::cout << rsltStr << std::endl;
    return 0;
}
Разбирайтесь.
(SkyNet)
 Аватар для (SkyNet)
22 / 40 / 6
Регистрация: 25.10.2011
Сообщений: 175
08.11.2011, 20:51  [ТС]     Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2. #8
я не знаю C++, я только С учу

Добавлено через 2 минуты
Цитата Сообщение от soon Посмотреть сообщение
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
#include <iostream>
#include <cstring>
 
int main()
{
    std::string srcStr = "ready\tset\nplant";
    std::string rsltStr;
    std::cout << srcStr << std::endl << std::endl;
    for(int i = 0; i < srcStr.length(); ++i)
        switch(srcStr[i])
        {
            case('\n'):
                rsltStr += '\\';
                rsltStr += 'n';
                break;
                
            case('\t'):
                rsltStr += '\\';
                rsltStr += 't';
                break;
                
            default:
                rsltStr += srcStr[i];
                break;
        }
    std::cout << rsltStr << std::endl;
    return 0;
}
Разбирайтесь.
Ищё 1 не нужная, непонятная програма
Xind
275 / 148 / 7
Регистрация: 05.11.2011
Сообщений: 425
Записей в блоге: 1
08.11.2011, 20:56     Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2. #9
Цитата Сообщение от (SkyNet) Посмотреть сообщение
я не знаю C++, я только С учу
из http://clc-wiki.net/wiki/K%26R2_solu..._1:Exercise_10
Если учите С, попробуйте изменить следующую программу на решение вашей задачи:
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
#include <stdio.h>
 
int main()
{
    int c, d;
 
    while ( (c=getchar()) != EOF) {
        d = 0;
        if (c == '\\') {
            putchar('\\');
            putchar('\\');
            d = 1;
        }
        if (c == '\t') {
            putchar('\\');
            putchar('t');
            d = 1;
        }
        if (c == '\b') {
            putchar('\\');
            putchar('b');
            d = 1;
        }
        if (d == 0)
            putchar(c);        
    }
    return 0;
}
Добавлено через 2 минуты
Попробуйте воспользоваться sscanf
будет интересно
(SkyNet)
 Аватар для (SkyNet)
22 / 40 / 6
Регистрация: 25.10.2011
Сообщений: 175
08.11.2011, 21:03  [ТС]     Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2. #10
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
#include <conio.h>
#include <stdio.h>
#include <string.h>
#define N 500
void main ()
{
 
char const str1[N]={"Computer \n programming \t is the process of designing, \nwriting the source code of computer \t programs"};
//char const enter[4]={"\\n"};
char* p;
int i, n=0;
clrscr();
 
printf("%s",str1);
n=strlen(str1);
char *str2 = new char [n];
 
 str2 = strdup(str1);
  for (p = str2; *p; ++p)
   {
    if (*p == '\n')
        *p =* "\\n";
 
    if (*p == '\t')
        *p =* "\\t";
   }
 
 printf("\n\n%s\n",str2);
 getch
Вот что у меня получилось. появилась проблемка: нельзя заменить 1 символ на 3, плз кто понимает подправте
Xind
275 / 148 / 7
Регистрация: 05.11.2011
Сообщений: 425
Записей в блоге: 1
08.11.2011, 21:06     Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2. #11
Цитата Сообщение от (SkyNet) Посмотреть сообщение
нельзя заменить 1 символ на 3
Все правильно. Добавляйте по одному символу.

Цитата Сообщение от (SkyNet) Посмотреть сообщение
*p =* "\\n";
Что это? О_о
(SkyNet)
 Аватар для (SkyNet)
22 / 40 / 6
Регистрация: 25.10.2011
Сообщений: 175
08.11.2011, 21:11  [ТС]     Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2. #12
Цитата Сообщение от Xind Посмотреть сообщение
из http://clc-wiki.net/wiki/K%26R2_solu..._1:Exercise_10
Если учите С, попробуйте изменить следующую программу на решение вашей задачи:
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
#include <stdio.h>
 
int main()
{
    int c, d;
 
    while ( (c=getchar()) != EOF) {
        d = 0;
        if (c == '\\') {
            putchar('\\');
            putchar('\\');
            d = 1;
        }
        if (c == '\t') {
            putchar('\\');
            putchar('t');
            d = 1;
        }
        if (c == '\b') {
            putchar('\\');
            putchar('b');
            d = 1;
        }
        if (d == 0)
            putchar(c);        
    }
    return 0;
}
Добавлено через 2 минуты
Попробуйте воспользоваться sscanf
будет интересно
та здесь много чево менятью здесь та же проблема надо заменить 1 на 3 , а не 1 на 1

Добавлено через 2 минуты
Цитата Сообщение от Xind Посмотреть сообщение
Все правильно. Добавляйте по одному символу.


Что это? О_о
Ето выводит \n в функции printf на екран во-первых, А во врорих не льзя просто так заменить в строке 1 символ на 3. надо всё здвинуть в лево и збольшить строку на количество символов.
Xind
275 / 148 / 7
Регистрация: 05.11.2011
Сообщений: 425
Записей в блоге: 1
08.11.2011, 21:14     Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2. #13
Смотрите
char *str2 = new char [n];
Вы пытаетесь в новый массив с длиной такой же как исходный записать дополнительные символы. Массив должен быть больше или расширяемым.

Добавлено через 2 минуты
Цитата Сообщение от (SkyNet) Посмотреть сообщение
я не знаю C++, я только С учу
А это кто написал?
C++
1
char *str2 = new char [n]
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2011, 21:17     Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2.
Еще ссылки по теме:

Написать функцию которая заменяет все буквы в строке на '*',а цифры оставляет как есть. C++
C++ Заменить в строке все вхождения подстроки str1 на подстроку str2

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

Или воспользуйтесь поиском по форуму:
(SkyNet)
 Аватар для (SkyNet)
22 / 40 / 6
Регистрация: 25.10.2011
Сообщений: 175
08.11.2011, 21:17  [ТС]     Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2. #14
Цитата Сообщение от Xind Посмотреть сообщение
Смотрите

Вы пытаетесь в новый массив с длиной такой же как исходный записать дополнительные символы. Массив должен быть больше или расширяемым.

Добавлено через 2 минуты

А это кто написал?
я, а что? та ето осталось с прошлой версии програмы, и я понимаю что размерность строк одинаковая в начале. оно не нужно там надо просто обявить str2
Yandex
Объявления
08.11.2011, 21:17     Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2.
Ответ Создать тему
Опции темы

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