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

Замена в строке восклицательного знака на точку - C++

Восстановить пароль Регистрация
 
Hardcore
4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
02.11.2010, 14:11     Замена в строке восклицательного знака на точку #1
Надо написать функцию которает поменяет влюбом тексте все "!" знаки на "."
надо использовать указатели.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2010, 14:11     Замена в строке восклицательного знака на точку
Посмотрите здесь:

Необходимо чтобы функция new добавляла к строке 3 знака восклицания C++
C++ Найти в строке точку
Замена символов в строке C++
C++ В строке заменить все запятые на точку
Определить наличие восклицательного знака в вводимой строке C++
Найти в строке цифры, идущие после знака &, и вывести их C++
C++ В введенной строке заменить каждую запятую и точку на точку с запятой
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lerny
 Аватар для Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
02.11.2010, 14:57     Замена в строке восклицательного знака на точку #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Hardcore Посмотреть сообщение
Надо написать функцию которает поменяет влюбом тексте все "!" знаки на "."
надо использовать указатели.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <conio.h>
#include <iostream>
 
int main()
{
using namespace std;
        char *p=new char[300];
        cin.get(p,299);
 
int i=0;
while (p[i]!='\0')
{
        if (p[i]=='!')
         p[i]='.';
         i++;
}
        cout << p;
delete p;
p=NULL;
        getch();
        return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9382 / 5432 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
02.11.2010, 15:00     Замена в строке восклицательного знака на точку #3
C
1
2
3
4
5
6
...
char s[] = "bla!bla!bla!", * p;
for ( p = s; *p; ++p )
  if ( *p == '!' )
    *p = '.';
...
Hardcore
4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
02.11.2010, 16:51  [ТС]     Замена в строке восклицательного знака на точку #4
#include <conio.h> а что делает эта библиотека?
Lerny
 Аватар для Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
02.11.2010, 16:54     Замена в строке восклицательного знака на точку #5
Цитата Сообщение от Hardcore Посмотреть сообщение
#include <conio.h> а что делает эта библиотека?
Вообще я её ввел только ради getch(), чтобы программа не закрывалась.
Можно удалить библиотеку и тогда добавить вместо getch():
C++
1
2
char kon;
cin >> kon;
Beleaf
9 / 9 / 3
Регистрация: 14.04.2010
Сообщений: 99
02.11.2010, 16:55     Замена в строке восклицательного знака на точку #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
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
 
using namespace std;
 
int main()
{
    int i=0, len=0;
    char *text = new char[300];
    char chngval, wntval;
    cout << "Input your text: ";
    cin.getline (text, 200);
    len = strlen(text);
    cout << "Input a character on which you want to change: ";
    cin >> wntval;
    cout << "Input a character you want to change: ";
    cin >> chngval;
    for (i=0; i<len; i++)
        if (text[i] == chngval) text[i] = wntval;
    for (i=0; i<len; i++)
        cout << text[i];
    cin.get();
    cin.get();
    return 0;
}
Мой вариант. Более наворочено: можете сами выбирать какой символ заменять и на какой.
Hardcore
4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
02.11.2010, 17:19  [ТС]     Замена в строке восклицательного знака на точку #7
а можешь код написать полность без getch()?
Beleaf
9 / 9 / 3
Регистрация: 14.04.2010
Сообщений: 99
02.11.2010, 17:24     Замена в строке восклицательного знака на точку #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
пожалуйста:

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 <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
 
using namespace std;
 
int main()
{
        int i=0, len=0;
        char *text = new char[300];
        char chngval, wntval;
        cout << "Input your text: ";
        gets (text);
        len = strlen(text);
        cout << "Input a character on which you want to change: ";
        cin >> wntval;
        cout << "Input a character you want to change: ";
        cin >> chngval;
        for (i=0; i<len; i++)
                if (text[i] == chngval) text[i] = wntval;
        for (i=0; i<len; i++)
                cout << text[i];
    cout << endl;
    system ("pause");
        return 0;
}
Если есть вопросы, с радостью отвечу
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2010, 17:24     Замена в строке восклицательного знака на точку
Еще ссылки по теме:

Замена знака в значениях массива C++
C++ Найти методом пошагового прохождения по аргументу точку, в которой происходит смена знака функции
Определить в строке количество пробелов до первого восклицательного знака C++
C++ Как сделать так, чтобы после каждого знака препинания в строке стоял пробел?
C++ Как найти количество символов в строке до определённого знака?

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

Или воспользуйтесь поиском по форуму:
Lerny
 Аватар для Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
02.11.2010, 17:24     Замена в строке восклицательного знака на точку #9
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Hardcore Посмотреть сообщение
а можешь код написать полность без getch()?
Я так полагаю, если getch(), то это мне. Я ж написал, что заменить)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
int main()
{
using namespace std;
        char *p=new char[300];
        cin.get(p,299);
 
int i=0;
while (p[i]!='\0')
{
        if (p[i]=='!')
         p[i]='.';
         i++;
}
        cout << p;
delete p;
p=NULL;
        char kon;
        cin >> kon;
        return 0;
}
Yandex
Объявления
02.11.2010, 17:24     Замена в строке восклицательного знака на точку
Ответ Создать тему
Опции темы

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