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

Скопировать подстроку в строку до последнего пробела - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.88
zydrate
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 11
23.04.2011, 14:59     Скопировать подстроку в строку до последнего пробела #1
Надо написать программу, которая будет копировать подстроку в строку до последнего пробела.
Например, исходная строка "раз два три". В новую строку должно копироваться "раз, два".
Я использую функцию strrchr для нахождения последнего пробела, а вот как скопировать строку до этого пробела? Помогите разобраться.

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
#include <conio.h>
#include <iostream>
#include <string>
using namespace std;
class String {          
        char *str; 
        public:
// Конструктор
    String (char *s = "\0") {           
        str = new char [strlen(s)+1];   
        strcpy(str,s);          
              }
// Деструктор
        ~ String () 
        {delete str;  }
//Печать
        void Print(char *s)
        {cout<<str;}
 
        void Set ()
        {
        const int MAX = 80;              
        char *ptr,c=' ';
cout<<"Введите строку:"<<endl;
 
    char sTemp[MAX];
    cin.get(sTemp,MAX);
    ptr=strrchr(sTemp, c);
    cout<<ptr<<endl;
    strcpy(str,sTemp);
    // Здесь нужен оператор для копирования подстроки в новую строку
        }
        };
void main(void)
{
    setlocale(LC_ALL, "Russian");
    
    String s1,s2; 
    s1.Set();
 
   //s1.Print("s1");
   getch();
   return;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2011, 14:59     Скопировать подстроку в строку до последнего пробела
Посмотрите здесь:

Мне надо сделать поиск последнего вхождения подстроки s1 в строку s(с функцией LastPos, не strstr). В этом коде просто вхождение подстроки в строку. C++
C++ Переход на новую строку после пробела
C++ Ввести строку символов, если ее длина >6, выделить подстроку в { } скобках.
C++ Обрезать строку до первого пробела
C++ Что считывает ifstream: слово до пробела или полностью строку?
C++ Как запретить ввод в строку всех символов, кроме 0, 1 и пробела?
В строке указанную подстроку заменить на другую строку C++
C++ Функция, получающая подстроку, возвращает испорченный указатель на строку

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
23.04.2011, 15:27     Скопировать подстроку в строку до последнего пробела #2
C
1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h>
#include<string.h>
#include<windows.h>
 
int main(){
    char *text="раз, два, три", res[100]={'\0'}, *ws=NULL;
    if(ws=strrchr(text, ' ')) strncpy(res, text, ws-text);
    else puts("Character not found");
    CharToOem(res, res);
    puts(res);
    return 0;
}
zydrate
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 11
23.04.2011, 15:45  [ТС]     Скопировать подстроку в строку до последнего пробела #3
igorrr37 Спасибо, работает. Для своей задачи приспособил)
Yandex
Объявления
23.04.2011, 15:45     Скопировать подстроку в строку до последнего пробела
Ответ Создать тему
Опции темы

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