1 / 1 / 3
Регистрация: 17.12.2015
Сообщений: 62
1

Замена точки на многоточие

15.06.2016, 00:01. Показов 5409. Ответов 2

Есть задание : заменить точки на многоточия(...), а восклицательный знак * . Я написал код, но программа не заменяет точки. Помогите исправить ошибку.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    char str[31];
    cout << "Zapolnite stroky:";
    cin.getline(str, 31);
 
    for(int i = 0; i < 31; ++i)
    {
        if(str[i] == '!') 
        {str[i] = '*';}
        if(str[i] == '.')
            {str[i+1] = '.';}
    }
 
    cout << str << "\n";
    system("pause");
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.06.2016, 00:01
Ответы с готовыми решениями:

Dll приложение. Замена Английских слов на многоточие .
Пользовательские функции хранятся в dll файле и вызываются в приложении универсальный подход....

Замена одной точки в строке на три точки
Нужно в строке заменить одну точку на три точки Но я умею только один символ на другой вот мой...

В задаче заменить точки на многоточие
В инете есть много задач, где заменяется каждая точка на многоточие(т.е. . на ... , а .. на .........

Замена Английских слов на многоточие
Замена Английских слов на многоточие . Помогите исправить. using System; using...

2
2753 / 1908 / 568
Регистрация: 05.06.2014
Сообщений: 5,559
15.06.2016, 04:54 2
Нужно формировать новую строчку, а не пытаться изменять старую. Если как у вас, то программа либо повиснет, либо грохнется.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    char str[1234]="1.2.3";
    char res[1234];
    char*dst=res;
    for(const char*src=str;*src;++src)
    {
        if(*src=='.')
        {
            *dst++='.';
            *dst++='.';
            *dst++='.';
        }else
            *dst++=*src;
    }
    *dst=0;
    cout<<res;
0
1 / 1 / 3
Регистрация: 17.12.2015
Сообщений: 62
15.06.2016, 14:45  [ТС] 3
Спасибо за ответ!

Сделал вот так, но как заставить программу в одной строке заменять ! на * и точку на ... ?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
int main(){
char str1[100],str2[300]={0};
cin.getline(str1,100);
int j=0;
for(int i=0;str1[i];i++)
{
   if(str1[i]=='.')
   {
       str2[j++]='.';
       str2[j++]='.';
       str2[j++]='.';
   }
 
cout<<str2;}
return 0;
}
Добавлено через 21 минуту
Все, спасибо! Дописал сам.

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 <cstdlib>
 
using namespace std;
 
int main(){
char str1[100],str2[300]={0};
cin.getline(str1,100);
int j=0;
for(int i=0;str1[i];i++)
{
   if(str1[i]=='.')
   {
       str2[j++]='.';
       str2[j++]='.';
       str2[j++]='.';
   }
   else {
    if(str1[i]=='!')
    {
        str2[j]='*';
    }
   }
 
cout<<str2;}
return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2016, 14:45
Помогаю со студенческими работами здесь

Заменить все одинарные точки('.') на многоточие('.')
Program Var8; var s:string; i,n:integer; begin writeln('Введите строку, содержащую...

Замена слов на многоточие и вывод только согласных букв в предложении
Всем привет. Не могу разобраться. 1.Дано предложение, в котором одно из слов заключено в...

Написать метод, который в переданной строке заменяет все точки на многоточие
Написать метод, который в переданной строке заменяет все точки на многоточие. С его помощью...

Замена пробелов на точки
Добрый день помогите с заменой, нужно заменить определённый пробел на точку во всём тексте Пример...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru