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

Как заменить символ "*" на "??" - C++

Восстановить пароль Регистрация
 
сприт
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 11
22.06.2014, 01:19     Как заменить символ "*" на "??" #1
доброго вечера. подскажите пожалуйста у меня по заданию идет заменить каждую встречающуюся * на ??(считываемую из файла). я понял как заменить * на ?, но как на ??. добавлю листинг который сделал.буду очень благодарен.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
#include<fstream>
using namespace std;
void main()
{setlocale(0,"");
    char name[81];
cout<<"введите путь к файлу и нажмите ENTER"<<endl;
cin.getline(name,80);
    ifstream in(name);
    if(!in){cout<<"Ошибка!."<<endl; system("pause");}
    char a[40];
    in.getline(a,sizeof(a));
    cout<<"Начальная строка:"<<a<<endl;
 
for(int i=0;i<255;i++)
    if(a[i]==(char)42) {a[i]=(char)63;}
cout<<"Полученная сторока: "<<a<<endl;
 
    system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2014, 01:19     Как заменить символ "*" на "??"
Посмотрите здесь:

C++ В тексте заменить символы "fh" на символ "с"
C++ Сколько раз среди данных символов встречается символ "+" и символ "*"
Подскажите почему может появляться ошибка: "неразрешенный внешний символ "_SDL_..."" C++
Ввести символьную строку и заменить все буквы "а" на буквы "б" и наоборот, как заглавные, так и строчные. C++
C++ Подсчитать, колько раз в произвольном тексте встречается символ "*" и "+"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
22.06.2014, 01:34     Как заменить символ "*" на "??" #2
Цитата Сообщение от сприт Посмотреть сообщение
доброго вечера. подскажите пожалуйста у меня по заданию идет заменить каждую встречающуюся * на ??(считываемую из файла)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include<fstream>
#include<string>
#include<algorithm>
#include<iterator>
int main()
{
    std::string str;
    std::ifstream in("file.txt");
    std::copy(std::istream_iterator<char>(in),std::istream_iterator<char>(),std::back_inserter(str));
    int index(0);
    while((index = str.find('*'))!=std::string::npos)
        str.replace(index,1,"??");
    std::cout<<str;
    return 0;
}
сприт
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 11
22.06.2014, 04:18  [ТС]     Как заменить символ "*" на "??" #3
здравствуйте помогите плиз. каждую входящую "*" должно менять на "??"(считывается из файла)но выдает чепуху что в файле забито
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
#include<iostream>
#include<fstream>
#include<string>
int n,i;
using namespace std;
void main()
{setlocale(0,"");
ifstream in("D:\\1.txt");
if(!in){cout«"Ошибка!."«endl; system("pause");}
 
while(!in.eof())
{in.get();
 
n++;}
in.close();
in.open("D:\\1.txt");
char *a=new char[n];
string *s=new string[n];
for(int i=0;i<n;i++)
a[i]=in.get();
for(int i=0;i<n;i++)
{if(a[i] ='*') s[i]="??";
else s[i]=a[i];}
cout«a«endl;
system("pause");}
сприт
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 11
22.06.2014, 04:22  [ТС]     Как заменить символ "*" на "??" #4
а можно чутку проще вариант?

Добавлено через 2 часа 41 минуту
cooller, а можно подробное разъяснение листинга? что да как? просто не понятно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.06.2014, 05:07     Как заменить символ "*" на "??" #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
29
30
31
32
33
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
 
int main()
{
    setlocale(0, "");
    ifstream in("D:\\1.txt");
    if(!in)
    {
        cout << "Ошибка!." << endl; 
        system("pause");
        return 0;
    }
    
    string s;
    char ch;
    while (in.get(ch))
    {
        if (ch != '*')
            s += ch;
        else
        {
            s += "??";
        }
    }
    
    cout << s << endl;
    
    system("pause");
    return 0;
}
В файле:
** asdff sdfd * sdfs
** sdfs ddd*
sdf ssd** sdf8*
Миниатюры
Как заменить символ "*" на "??"  
сприт
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 11
22.06.2014, 10:55  [ТС]     Как заменить символ "*" на "??" #6
alsav22, спасибо
Yandex
Объявления
22.06.2014, 10:55     Как заменить символ "*" на "??"
Ответ Создать тему
Опции темы

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