Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
4 / 4 / 4
Регистрация: 08.09.2015
Сообщений: 76
1

Работа с Char и String

26.03.2016, 07:40. Показов 927. Ответов 4
Метки нет (Все метки)

Добрый день.
Задание: Дан текст. Вставить в него точку после каждого второго слова.

Как можно осуществить подобное используя char.

Я так понимаю алгоритм будет таков:
Цикл от 0 до "размер строки"
Если символ = " ", то вот тут тупик.
Нам надо заменить его на запятую, но пи этом еще и увеличить размер строки подписав туда еще пробел.

Пробовал переписывать одну строку в вторую, но тоже потерпел фиаско. Подскажите плз умную идею)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.03.2016, 07:40
Ответы с готовыми решениями:

Работа с char и string
Привет. Продолжаю изучать C++. Можете посоветовать хорошую книгу или что-нибудь вроде книги(может...

Работа с char и string ф-циями
const 1nt l_name = 30; const 1nt l_year = 5; const 1nt l_pay =10; const 1nt l_buf = l_name +...

есть массив char. есть строка string. как присвоить значению string-a значение char-a?
есть массив char. есть строка string. как присвоить значению string-a значение char-a?

Передача в функцию char*([Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings])
Почему компилятор на это матерится? ObjA.Show("A"); deprecated conversion from string constant...

4
6 / 6 / 7
Регистрация: 19.03.2016
Сообщений: 50
26.03.2016, 07:52 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
24
25
#include <iostream>
#include <sstream>
#include <fstream>
#include <string>
 
using namespace std;
 
int main() {
    ifstream in("test.txt");
    stringstream sstream;
    string s;
    int i = 1;
    
    do {
        in >> s;
        sstream << s;
        
        if(i++ % 2 == 0)
            sstream << ".";
        
        sstream << " ";
    } while(!in.eof());
    
    cout << sstream.str() << endl;
}
содержимое test.txt:
C++
1
2
abc def test io kl nasd rqwe
weo dasjf ktiras opdasd nfad
результат:
C++
1
abc def. test io. kl nasd. rqwe weo. dasjf ktiras. opdasd nfad.
1
4 / 4 / 4
Регистрация: 08.09.2015
Сообщений: 76
26.03.2016, 09:00  [ТС] 3
Огромное спасибо за код, но загвоздка в том, что запретили использовать переменную стринг. Все нужно делать с массивом char
0
6 / 6 / 7
Регистрация: 19.03.2016
Сообщений: 50
26.03.2016, 09:51 4
Лучший ответ Сообщение было отмечено zlodeyxgm как решение

Решение

zlodeyxgm,
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
#include <iostream>
#include <sstream>
#include <fstream>
 
using namespace std;
 
int main() {
    ifstream in("test.txt");
    stringstream sstream;
    char s[64];
    int i = 1;
    
    do {
        in >> s;
        sstream << s;
        
        if(i++ % 2 == 0)
            sstream << ".";
        
        sstream << " ";
    } while(!in.eof());
    
    cout << sstream.str() << endl;
}
или stringstream тоже запретили?
0
4 / 4 / 4
Регистрация: 08.09.2015
Сообщений: 76
26.03.2016, 10:57  [ТС] 5
Спасибо, попробую показать такой вариант. Вроде главным требованием было, что работу нужно проводить с символами. А по поводу функции не ограничивали сильно.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2016, 10:57

Строка: чем отличается строки string, char, char*?
Помогите разобраться,совсем плохо идёт,чем отличается строки string,char,char* И если можно пару...

Как преобразовать char* в string и вывести переменную string на экран?
for (int k = 0; k &lt; 10; k++) { int x = (int)rand() / RAND_MAX + rand() % 6 + 2; ...

Где и почему используют ту или иную строку std::string, char[], System::String^ ?
Где и почему используют ту или иную строку std::string, char, System::String^ ? Объясните...

char char* string и константные значения
Робот может перемещаться в 4 направлениях c-Север, u- Юг, z- Запад, v- Восток ипринемать 3 цифровые...


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

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

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