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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Денис96
0 / 0 / 0
Регистрация: 10.08.2011
Сообщений: 55
#1

Заменить в строке запятыми все двоеточия - C++

13.12.2012, 19:23. Просмотров 346. Ответов 1
Метки нет (Все метки)

Доброго времени суток. Условие задачи:
____________________________________________________________ _____
Даны натуральное число п, символы S1, ...,Sn (n>1). Преобразовать последовательность S1, ...,Sn заменив запятыми все двоеточия, встречающиеся среди S1, ...,S [n/2] , и заменив точками все восклицательные знаки, встречающиеся среди S[n/2]+1,…,Sn.

Вот мой код. Ошибок нет, но программа вылетает. Что мне здесь нужно исправить?
____________________________________________________________ _____
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
34
35
36
37
38
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    char *str1 = ".,";
    char *str2 = ":!as!:fs!:::!!!!!";
    char *str3 = "!:";
    char *str20= "";
    char *str21="";
    char *str4="";
 
    int len = strlen(str2);
    for (int i=0; i<len/2; i++)
    {
        if (str2[i]==str3[1])
        {
            str2[i]=str1[1];
        }
    }
    strcpy(str20, str2);
    for (int i=len/2+1;i<len;i++)
    {
        if (str2[i]==str3[0])
        {
            str2[i]=str1[0];
        }   
    }
    strcpy(str21, str2);
    str4 = strcat(str20,str21);
    puts(str4);
    
    system("pause");
    getch();
    return 0;
}
Добавлено через 25 минут
Скоро сессия, помогите, пожалуйста! Заранее очень благодарю!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2012, 19:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заменить в строке запятыми все двоеточия (C++):

Преобразовать последовательность, заменив запятыми все двоеточия - C++
Доброго времени суток. Условие задачи: _________________________________________________________________ Даны натуральное число п,...

В строке заменить все двоеточия (:) точкой с запятой(;). Подсчитать кол-во замен - C++
Помогите, пожалуйста. В строке заменить все двоеточия (:) точкой с запятой(;). Подсчитать кол-во замен.

В строке заменить все двоеточия точкой с запятой и посчитать количество замен - C++
В строке заменить все двоеточия (:) точкой с запятой (;) и посчитать количество замен. Перенесено из раздела Turbo Pascal

Заменить все пробелы в текстовом файле запятыми - C++
1. В текстовом файле записаны фразы, который отделены друг от друга точками, слова – пробелами и знаками препинаниями; заменить все пробелы...

Получить все символы, расположенные до первого двоеточия в строке - C++
Даны натуральное число n, символы s1, s2, …, sn среди которых есть двоеточие. Получить все символы, расположенные до первого двоеточия ...

Преобразовать строку, заменив все двоеточия точками, все восклицательные знаки - вопросительными - C++
Дана строка из n символов.Преобразовать ее, заменив все двоеточия (:) точками, все восклицательные знаки - вопросительными.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
13.12.2012, 19:34 #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
26
27
28
29
30
int main()
{
    char str1[20]  = ".,";
    char str2[20]  = ":!as!:fs!:::!!!!!";
    char str3[20]  = "!:";
    char str20[20] = "";
    char str21[20] = "";
    char str4[20]  = "";
 
    int len = strlen(str2);
 
    for (int i=0; i < (len/2); i++)
        if (str3[i])
            if (str2[i] == str3[1])
                str2[i] = str1[1];
 
    strcpy(str20, str2);
 
    for (int i = (len/2 + 1); i<len; i++)
        if (str2[i]==str3[0])
            str2[i]=str1[0];
 
    strcpy(str21, str2);
    strcpy(str4,  strcat(str20,str21));
    cout << str4 << endl;
    
    system("pause");
    _getch();
    return 0; 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2012, 19:34
Привет! Вот еще темы с ответами:

Найти позицию последнего символа двоеточия в строке - C++
Найти позицию последнего символа двоеточия в строке. Выполнить двумя способами Буду рад любой помощи. Сдать нужно до завтра

В строке заменить все запятые на точку - C++
В строке заменить все запятые на точку. Подсчитать количество замен.

Заменить в строке все цифры на пробелы - C++
Понимаю что я наверное дурак, но не могли бы помочь с программой на С++ Вводится строка. Заменить в строке все цифры на пробелы В...

Заменить все пробелы в строке на слэш - C++
Кто может объяснить почему работает данный код? функция find() если не находит то что нам нужно, она же возвращает - 1 , тогда получается...


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

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

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