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

Удаление слова с номером N. (С++) - C++

Восстановить пароль Регистрация
 
Siouxsie
1 / 1 / 0
Регистрация: 05.01.2010
Сообщений: 3
05.01.2010, 19:50     Удаление слова с номером N. (С++) #1
Дана строка символов. Написать функцию для удаления слова с номером N. При написании программы необходимо использовать стандартные функции обработки строк.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2010, 19:50     Удаление слова с номером N. (С++)
Посмотрите здесь:

C++ Выделить из строки s слов, начиная от слова с номером n
Дана квадратная матрица порядка m. Преобразовать матрицу по правилу: строку с номером сделать столбцом с номером n, а столбец с номером n - строкой с C++
определение длины слова с номером n в строке s C++
C++ Класс строки (удаление из строки слова с заданным номером и символа с заданным номером)
C++ определение позиции начала в строке s слова с номером n
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
05.01.2010, 21:00     Удаление слова с номером N. (С++) #2
можно скопировать строку куда-нибудь, разрубить эту копию с помощью strtok, определив слово с номером N
в исходной строке найти это слово с помощью strstr (вернёт адрес первой буквы)
скопировать на его место (из исходной строки в исходную строку) с помощью memmove то, что находится за этим словом (адрес первой буквы слова плюс длина слова, вычисленная функцией strlen на любом этапе)
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
05.01.2010, 22:03     Удаление слова с номером N. (С++) #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
#include <iostream>
#include <string>
 
/*Дана строка символов. Написать функцию для удаления слова с номером N. При написании программы необходимо использовать стандартные функции обработки строк.*/
 
using namespace std;
 
int main()
{
    string str, buf="";
    int index=0, n, counter;
 
    cout << "Enter string: ";   getline(cin, str);  str+=" ";
    cout << "Enter number word: "; cin>>n;
 
    if(n<=0) { cout<<"error number is very small \n"; system("pause");  return 1; }
    
    counter=n;
    while ((index=str.find_first_of(" "))!=string::npos&&(--counter))
    {
        indexBeg=index;
        buf+=str.substr(0,index)+" ";
        str=str.substr(index+1);
    }
 
    if(counter) { cout<<"error number is very big \n"; system("pause"); return 1; }
  if((index=str.find_first_of(" "))!=string::npos)
        cout<<"str: "<<buf<<" "<<str.substr(index+1)<<endl;
    else
        cout<<"str: "<<buf<<endl;
 
    system("pause");
    return 0;
}
Siouxsie
1 / 1 / 0
Регистрация: 05.01.2010
Сообщений: 3
06.01.2010, 17:08  [ТС]     Удаление слова с номером N. (С++) #4
Спасибо)))
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
06.01.2010, 17:13     Удаление слова с номером N. (С++) #5
C++
1
  indexBeg=index;
что такое О_О
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
06.01.2010, 20:02     Удаление слова с номером N. (С++) #6
Цитата Сообщение от МедведЪ Посмотреть сообщение
C++
1
  indexBeg=index;
что такое О_О
это и значит что набросал и не причесал, убери и всё.
Yandex
Объявления
06.01.2010, 20:02     Удаление слова с номером N. (С++)
Ответ Создать тему
Опции темы

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