Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
PROsha311
0 / 0 / 0
Регистрация: 16.05.2010
Сообщений: 16
#1

Строки - C++

21.05.2010, 16:31. Просмотров 498. Ответов 9
Метки нет (Все метки)

Вводится строка произвольного текста. Вывести на экран последнее слово (слова разделены пробелами).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2010, 16:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки (C++):

Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки - C++
Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки. 1. Я дуб дубом,даже...

Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк - C++
Есть динамический массив строк. Заполняется, т.е. размер его уже известен будет. Но дальше нужно сделать задание: "Добавить строки, начиная...

Удалить строки динамической матрицы, начиная со строки К1 и до строки К2 - C++
Сформировать динамический двумерный массив, заполнить его случайными числами и удалить строки, начиная со строки К1 и до строки К2 вот...

Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней - C++
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка...

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

Чтение через fscanf_s части строки с пробелом (и запись этой же строки) - C++
нужно записать в файл строку, содержащую через табуляцию int, char, char, char, float, int. Далее необходимо из такой же строки вывести...

9
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
21.05.2010, 17:58 #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
#include <stdio.h>
 
int main()
{
    char str[512];
    char buf[20];
    int len;
    int i, j;
    
    printf("Vvedite stroku slov, razdelennih probelami:\n");
    gets(str);
    
    i = strlen(str);
    j = 0;
    
    while ((i >= 0) && (str[i] != ' '))
        buf[j++] = str[i--];
    
    for (i = j - 1; i > 0; i--)
        printf("%c", buf[i]);
        
    getch();
    return 0;
}
0
Blacktender
0 / 0 / 0
Регистрация: 14.05.2010
Сообщений: 21
04.06.2010, 19:08 #3
тут кстати ошибка вылезает насчет строчки : i = strlen(str);
[C++ Error] Unit1.cpp(13): E2268 Call to undefined function 'strlen'
0
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
04.06.2010, 19:12 #4
Люди, ну почему вы не читаете сообщения компилятора? Он же вам английским языком написал, что вы пытаетесь вызвать неописанную функцию... А если он такое пишет, то что? То надо подключить определённый хидер... А какой? А если функция возвращает длину строки, то это работа со строками. Ага, значит надо подключить string.h
1
Kastaneda
Jesus loves me
Эксперт С++
4689 / 2893 / 236
Регистрация: 12.12.2009
Сообщений: 7,355
Записей в блоге: 2
Завершенные тесты: 1
04.06.2010, 19:44 #5
Не факт, я в DEV C++ подключаю только <iostream> и все, strlen при этом работает.
0
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
04.06.2010, 19:46 #6
Kastaneda, ну так я тоже в нем работаю))) В Dev-Cpp то есть))) Потому у меня и подключен один только stdio. Но по стандарту strlen лежит в string.h. И как конец строки он воспринимает нуль-терминатор.
0
Kastaneda
Jesus loves me
Эксперт С++
4689 / 2893 / 236
Регистрация: 12.12.2009
Сообщений: 7,355
Записей в блоге: 2
Завершенные тесты: 1
04.06.2010, 20:16 #7
Цитата Сообщение от silent_1991 Посмотреть сообщение
И как конец строки он воспринимает нуль-терминатор.
ага, я проверил, потом сообщение подправил) Ты похоже успел неправленное прочитать)
0
easybudda
Модератор
Эксперт CЭксперт С++
9695 / 5645 / 963
Регистрация: 25.07.2009
Сообщений: 10,849
04.06.2010, 20:36 #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
 
int main(){
    std::string buf;
    std::cout << "String: ";
    std::getline(std::cin, buf);
    size_t pos;
    if ( ( pos = buf.find_last_not_of(" \t") ) == std::string::npos ){
        std::cerr << "String is empty or contain olny space characters!" << std::endl;
        return 1;
    }
    if ( pos < buf.size() - 1 )
        buf.erase(pos + 1);
    pos = buf.find_last_of(" \t");
    std::cout << ( pos == std::string::npos ? buf : buf.substr(pos + 1) ) << std::endl;
 
    return 0;
 
}
0
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
04.06.2010, 20:39 #9
easybudda,
ну вот так всегда, вечно вы приходите и мне становится стыдно за свой быдлокод)))
0
easybudda
Модератор
Эксперт CЭксперт С++
9695 / 5645 / 963
Регистрация: 25.07.2009
Сообщений: 10,849
04.06.2010, 21:00 #10
silent_1991, ну я не специально... Вот на С ещё вариант
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define SPACES " \t\n"
 
int main(void){
    char buf[BUFSIZ], * p, * t = NULL;
 
    printf("String: ");
    if ( ! fgets(buf, BUFSIZ, stdin) || *buf == '\n' )
        exit(EXIT_FAILURE);
    for ( p = strtok(buf, SPACES); p; p = strtok(NULL, SPACES) )
        t = p;
    if ( ! t )
        exit(EXIT_FAILURE);
    printf("Last word: %s\n", t);
 
    exit(EXIT_SUCCESS);
}
0
04.06.2010, 21:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2010, 21:00
Привет! Вот еще темы с ответами:

Упорядочить символы строки B в алфавитном порядке и удалить латинские буквы из строки A - C++
&quot;Даны строки A и B. Если в A есть латинские буквы, а в B нет повторяющихся символов, то упорядочить символы B в алфавитном порядке и...

Прибавить ко всем элементам каждой строки максимальное значение этой строки - C++
добрый вечер! Помогите пожалуйста доработать код! Изменить текущий массив, прибавив ко всем элементам каждой строки максимальное...

Вычислить длину введенной строки и вывести символы строки с четными индексами - C++
Напишите программу, которая требует ввода строки с клавиатуры. Программа вычисляет длину строки и выводит на экран только те символы...

Как считать строки из файла, если там больше одной строки? - C++
Как считать строки из файла в массив. Если в файле одна строка, то нет проблем, но если несколько, то при использовании функции fgets ...


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

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

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