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

Строки - C++

Восстановить пароль Регистрация
 
PROsha311
0 / 0 / 0
Регистрация: 16.05.2010
Сообщений: 16
21.05.2010, 16:31     Строки #1
Вводится строка произвольного текста. Вывести на экран последнее слово (слова разделены пробелами).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2010, 16:31     Строки
Посмотрите здесь:

C++ Указать номер строки, максимально удаленной от первой строки заданной матрицы
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней C++
C++ Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки
C++ Функция перезаписывает символы строки заданным количеством символов другой строки
Удалить строки динамической матрицы, начиная со строки К1 и до строки К2 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 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;
}
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'
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
04.06.2010, 19:12     Строки #4
Люди, ну почему вы не читаете сообщения компилятора? Он же вам английским языком написал, что вы пытаетесь вызвать неописанную функцию... А если он такое пишет, то что? То надо подключить определённый хидер... А какой? А если функция возвращает длину строки, то это работа со строками. Ага, значит надо подключить string.h
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
04.06.2010, 19:44     Строки #5
Не факт, я в DEV C++ подключаю только <iostream> и все, strlen при этом работает.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
04.06.2010, 19:46     Строки #6
Kastaneda, ну так я тоже в нем работаю))) В Dev-Cpp то есть))) Потому у меня и подключен один только stdio. Но по стандарту strlen лежит в string.h. И как конец строки он воспринимает нуль-терминатор.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
04.06.2010, 20:16     Строки #7
Цитата Сообщение от silent_1991 Посмотреть сообщение
И как конец строки он воспринимает нуль-терминатор.
ага, я проверил, потом сообщение подправил) Ты похоже успел неправленное прочитать)
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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;
 
}
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
04.06.2010, 20:39     Строки #9
easybudda,
ну вот так всегда, вечно вы приходите и мне становится стыдно за свой быдлокод)))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2010, 21:00     Строки
Еще ссылки по теме:

Упорядочить символы строки B в алфавитном порядке и удалить латинские буквы из строки A C++
Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк C++
C++ Вычислить длину введенной строки и вывести символы строки с четными индексами

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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);
}
Yandex
Объявления
04.06.2010, 21:00     Строки
Ответ Создать тему
Опции темы

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