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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Вадян
1 / 1 / 0
Регистрация: 25.05.2012
Сообщений: 42
#1

Напечатать строку, предварительно заменив на «ks» первое вхождение «x», если оно есть - C++

09.06.2012, 00:26. Просмотров 1278. Ответов 20
Метки нет (Все метки)

Дана строка латинских символов. Напечатать эту строку , предварительно заменив на «ks» первое вхождение
«x», если оно есть .
Пожалуйста,помогите написать

Добавлено через 15 минут
+ к этому:
1. Исходный текст находится в текстовом файле, имя которого вводится с клавиатуры .
2. Вывод результата осуществляется одновременно в текстовый файл, имя которого вводится с клавиатуры , и на
экран монитора.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2012, 00:26     Напечатать строку, предварительно заменив на «ks» первое вхождение «x», если оно есть
Посмотрите здесь:

C++ Из файла ввести слово и найти в нём последнее вхождение заданного символа, если он есть
C++ Найти в каждом первое слово и напечатать их в строку через пробел
Даны два действительных числа. Вывести первое число, если оно больше второго, и оба числа, если это не так. C++
C++ Уменьшить первое введённое число в два раза, если оно больше второго по абсолютной величине
В предложении удалить первое вхождение “w”, если такое есть C++
В списке Р заменить первое вхождение списка Р1 (если такое есть) на список Р2 C++
C++ Заменить первое число нулем, если оно меньше или равно второму
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2012, 06:24     Напечатать строку, предварительно заменив на «ks» первое вхождение «x», если оно есть
Еще ссылки по теме:

C++ Первое вхождение символа в строку. С++
Вывести первое число, если оно больше второго, и оба числа, если это не так C++
C++ Найти первое вхождение в строку заданного ключевого слова
Найти первое вхождение символов в строку C++
Заменить в строке s1 первое вхождение s2 на строку s3 C++

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

Или воспользуйтесь поиском по форуму:
Jazz411
85 / 33 / 3
Регистрация: 12.03.2011
Сообщений: 234
Записей в блоге: 2
09.06.2012, 06:24     Напечатать строку, предварительно заменив на «ks» первое вхождение «x», если оно есть #21
Да, Господи ребят вы чего? просто в моем коде флаг повесте и все.

The_Immortal, Там заменить нужно х на ks, а не наоборот, читаем внимательно

The_Immortal, Код исправил правильно, спасибо только вот тут
C++
1
2
3
4
if ((str[i] == 'x' || str[i] == 'X') && !stop) 
{ 
   if (!stop)
  {
достаточно 1 if оно и так есть в условии
C++
1
2
if ((str[i] == 'x' || str[i] == 'X') && !stop) 
{
Добавлено через 47 минут
Блин, я идиот советую посмотреть внимательно на мой код, я там допусти ошибку, к примеру введите сложное предложение
Короче строки

C++
1
2
3
    while (!feof(file)) 
    {
        fscanf(file, "%s", str);
C++
1
2
3
4
5
6
7
8
9
    while (!feof(file)) 
    {
        fscanf(file, "%s", str);
 
        if (!(rezult = fopen(strcat(rezult_file_name, ".txt"), "w+"))) {
            cout << "Can't creat file" << endl;
            system("Pause");
            _exit(1);
        }
перенесите вниз =>
C++
1
2
3
4
5
6
7
8
9
        if (!(rezult = fopen(strcat(rezult_file_name, ".txt"), "w+"))) {
            cout << "Can't creat file" << endl;
            system("Pause");
            _exit(1);
        }
 
    while (!feof(file)) 
    {
        fscanf(file, "%s", str);
Добавлено через 2 минуты
да, в конце допишите
C++
1
2
fclose(file);
fclose(rezult_file_name);
Добавлено через 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
using namespace std;
 
int main(void) 
{
    char str[256] = {0};
    FILE* file = NULL;
 
    cout << "Enter name of file" << endl;
    cin.getline(str, 256);
    cin.sync();
 
    if (!(file = fopen(strcat(str, ".txt"), "r")))
    {
        cout << "Can't open file" << endl;
        system("Pause");
        _exit(1);
    }
 
    memset(str, 0, 256);
 
    char rezult_file_name[256] = {0};
    FILE* rezult = NULL;
 
    cout << "Enter name of rezult file" << endl;
    cin.getline(rezult_file_name, 256);
 
        if (!(rezult = fopen(strcat(rezult_file_name, ".txt"), "w+")))
        {
            cout << "Can't creat file" << endl;
            system("Pause");
            _exit(1);
        }
 
    bool stop = false;
 
    while (!feof(file))
    {
        fscanf(file, "%s", str);
 
        for (int i = 0; i < strlen(str); i++) {
            if ((str[i] == 'x' || str[i] == 'X') && !stop)
            {
                    fprintf(rezult, "%s", "ks");
                    cout << "ks";
                    stop = true;
 
            }
            else 
            {
                fprintf(rezult, "%c", str[i]);
                cout << str[i];
            }
        }
 
        fprintf(rezult, "%c", ' ');
        cout << ' ';
    }
    cout << endl;
 
    fclose(file);
    fclose(rezult_file_name);
 
    system("PAUSE");
    return 0;
}
Yandex
Объявления
09.06.2012, 06:24     Напечатать строку, предварительно заменив на «ks» первое вхождение «x», если оно есть
Ответ Создать тему
Опции темы

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