Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/40: Рейтинг темы: голосов - 40, средняя оценка - 4.73
5 / 5 / 0
Регистрация: 24.03.2010
Сообщений: 26

Выделение последнего слова в строке

25.03.2010, 20:12. Показов 7927. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в текстовом файле содержится инфа об абоненте: Ф.И.О. ,город , улица,номер телефона.
определить по номеру телефона абонента.
т.е нужно прогнать файл до номера после его нужно выделить и записать в переменную но как это сделать я не знаю.
Вопрос: как выделить последнее слово или последний символ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.03.2010, 20:12
Ответы с готовыми решениями:

Выделение последнего слова из строки
Написать программу выделения последнего слова из введенной строки и отображение его на экране. Языковая среда Borland C++ 3.1, но не...

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

Выделение слова в строке
Прошу помощи. Как выделить слово из заданого предложения? #include "math.h" #include "iostream" #include <stdlib.h> ...

7
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
25.03.2010, 20:26
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <string>
#include <sstream>
#include <iostream>
 
int main()
{
    //Строка, из которой нужно выделить последнее слово
    std::string str;
    //Строка, в которой будет храниться последнее слово
    std::string lastword;
    std::getline(std::cin, str);
    std::stringstream ss(str);
    while(ss >> lastword);
    std::cout << "The last word in the string is \'" << lastword << "\'" << std::endl;
    system("pause");
    return 0;
}
Суть в том: ты инициализируешь строковый поток строкой, и пока не дойдешь до конца потока, записываешь в переменную отдельное слово из потока. Таким образом, когда дойдешь до конца потока, в переменной lastword будет храниться последнее слово
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
25.03.2010, 20:27
последнее слово в строке:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
 
int main(){
    std::string s("Volk, Tambov, Les, 555-1234");
    std::cout << s << std::endl;
    size_t pos = s.find_last_of(' ');
    std::string phone(s.substr(pos + 1));
    std::cout << "Phone: " << phone << std::endl;
 
    return 0;
}
то есть нужно читать файл построчно и проверять последнее слово (лучше такую функцию сделать).
Да, ещё неплохо бы проверять строку на пробелы в конце и удалять их...
1
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
25.03.2010, 20:40
Цитата Сообщение от easybudda Посмотреть сообщение
Да, ещё неплохо бы проверять строку на пробелы в конце и удалять их...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <string>
#include <iostream>
 
int main()
{
    //Строка, из которой нужно выделить последнее слово
    std::string str("Volk, Tambov, Les, 555-1234            ");
    //Строка, в которой будет храниться последнее слово
    std::string lastword;
    size_t index;
    //Поиск в обратном направлении
    while((index=str.rfind(" "))==str.size()-1)
        str.erase(index);//Удаление пробела
    lastword=str.substr(index+1);
    std::cout << lastword << std::endl;
    system("pause");
    return 0;
}
0
5 / 5 / 0
Регистрация: 24.03.2010
Сообщений: 26
25.03.2010, 20:44  [ТС]
а как это в СИ выглядеть должно?
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
25.03.2010, 21:08
А на C нужно использовать функцию strstr или перебирать символы строки с конца

Добавлено через 20 минут
Вот на С:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <cstdio>
#include <cstdlib>
#include <cstring>
 
int main()
{
    const size_t max=100;
    //Строка, из которой нужно выделить последнее слово
    char str[max]="Volk, Tambov, Les, 555-1234            ";
    //Строка, в которой будет храниться последнее слово
    char lastword[max];
    size_t current_sym=strlen(str)-1;
    //Удаление пробелов с конца
    while(str[current_sym]==' ')
        str[current_sym--]='\0';
    while((str[current_sym]!=' ')&&(current_sym!=0))
        --current_sym;
    strcpy(lastword, str+current_sym+1);
    printf("%s\n", lastword); 
    system("pause");
    return 0;
}
1
5 / 5 / 0
Регистрация: 24.03.2010
Сообщений: 26
25.03.2010, 21:18  [ТС]
то что как раз и нужно +1
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
25.03.2010, 23:43
Цитата Сообщение от Nameless One Посмотреть сообщение
C++
1
2
while((index=str.rfind(" "))==str.size()-1)
str.erase(index);//Удаление пробела
Можно вот так ещё сделать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
 
/* удалялка пробелов в конце строки */
int main(){
    std::string s("Volk, Tambov, Les, 555-1234            ");
    size_t pos = s.find_last_not_of(' ');
    if ( pos != s.length() - 1 )
        s.erase(pos + 1);
    std::cout << "\"" << s << "\"" << std::endl;
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.03.2010, 23:43
Помогаю со студенческими работами здесь

Перестановка в строке первого и последнего слова..
Всем доброго времени суток!! Появилось вот такое задание написать программу на языке C++ чересстрочного слияния двух текстовых файлов...

Строковый ввод-вывод и считывание последнего слова в строке
Добрый вечер. Возник вопрос по следующей задаче: &quot;1) Скопировать из файла F1 в файл F2 строки, начиная с 4. 2) Подсчитать количество...

Указать общие символы первого и последнего слова в заданной строке (с использованием множества)
Помогите решить задачу с использованием множества: указать общие символы первого и последнего слова в заданной строке.

В исходной строке а$ определить все слова, отличные от последнего слова. Вывести эти слова в столбик
Помогите решить: В исходной строке а$ определить все слова, отличные от последнего слова. Вывести эти слова в столбик. Отблагодарю.

Вывести слова строки, которые отличны от последнего слова, и определить, есть ли в данной строке одинаковые слова
Дана строка, состоящая из слов, разделённых пробелами. Вывести слова этой строки, которые отличны от последнего слова. Определить, есть ли...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru