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

Функция в строках - C++

Восстановить пароль Регистрация
 
Grachyova
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 10
13.11.2012, 19:57     Функция в строках #1
Здравствуйте, помогите пожалуйста с функцией. Где-то что-то я не понимаю по функциям..
Есть строка которая при обработке функцией выводится в определенном виде. без разделения на функцию и основную программу все работает, но мне нужно с функцией для обработки потом нескольких строк по одним правилам.
Спасибо.
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
#include <iostream>
#include <stdio.h>
#include <string.h>
 
char *f()
{char  *str1, *ptr, m=' ',  c='p';
int a;
    ptr=strrchr(str1,c);
if ( ptr )
{a=ptr-str1;
str1 [a+1] = '\0';
}
else
{ptr=strrchr(str1,m);
if(ptr)
{a=ptr-str1;
str1 [a] = '\0';
}
}
return (str1);
}
main()
{char *str1;
printf ("Vvedite stroku 1: ");
gets (str1);
str1=f();
printf (str1);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2012, 19:57     Функция в строках
Посмотрите здесь:

Почему функция strchr по разному работает при разных строках? C++
Дан целый массив максимальной размерности 20*20. Провести сортировку по возрастанию в нечетных строках массива и по убыванию в четных строках. C++
что за функция такая strstr? или это не функция? C++
какую библиотеку надо подключать чтоб работала функция _getch() и функция cin.get() C++
C++ Создать производный класс, в котором реализована функция умножения вектора на число и функция сложения двух векторов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
13.11.2012, 19:59     Функция в строках #2
Изложи суть задания.
Grachyova
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 10
13.11.2012, 20:03  [ТС]     Функция в строках #3
Цитата Сообщение от David Sylva Посмотреть сообщение
Изложи суть задания.
Вот тема Строки, поиск вхождений символов и вывод

Изначальное задание:
Заданы 2 строки, состоящие из слов, разделенных пробелами. Определить последнее вхождение символа “р” в строке и вывести строку, начиная с первого символа и до последнего “р” в строке. Если такого символа нет, то вывести всю строку, исключив из нее последнее слово.
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
13.11.2012, 20:30     Функция в строках #4
Grachyova вам надо исправить вот этот код или можно предложить альтернативный вариант?
Grachyova
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 10
13.11.2012, 20:33  [ТС]     Функция в строках #5
Цитата Сообщение от David Sylva Посмотреть сообщение
Grachyova вам надо исправить вот этот код или можно предложить альтернативный вариант?
Желательно исправить этот, но если есть альтернативный и он проще будет то можно и так! Цель рабочая программа! Которая на ввод двух строк реагирует обработкой и выводом как по заданию
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
13.11.2012, 20:35     Функция в строках #6
Вот посмотрите такой вариант, мне кажется он легче и не используются стандартные функции
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>  
 
void func(char* str) 
{ 
    int i, j, index = -1;
    int size = strlen(str);
    for ( i = size; i >= 0; i--) 
        if(str[i] == 'p') 
        { 
            index = i; 
            for ( j = 0; j < index; j++) 
                std::cout << str[j]; 
            std::cout << std::endl;
            break;  
        }  
        if(index == -1) 
            for ( i = size; i>=0; i--)  
                if(str[i] == ' ') 
                {
                    index = i; 
                for ( j = 0; j < index; j++) 
                    std::cout << str[j]; 
                std::cout << std::endl;  
                break;
                } 
}
 
int main() 
{ 
    char str1[] = "Real Madrid Champions of Spain"; 
    char str2[] = "Barcelona is very good team"; 
    func(str1); 
    func(str2);
}
Grachyova
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 10
13.11.2012, 20:55  [ТС]     Функция в строках #7
Цитата Сообщение от David Sylva Посмотреть сообщение
Вот посмотрите такой вариант, мне кажется он легче и не используются стандартные функции
C++
1
2
3
4
5
6
7
int main() 
{ 
    char str1[] = "Real Madrid Champions of Spain"; 
    char str2[] = "Barcelona is very good team"; 
    func(str1); 
    func(str2);
}
Поменяла ввод строк, зная преподавателя!
C++
1
2
3
4
5
6
7
8
9
int main()
{char str1[20], str2[20];
    printf ("Vvedite stroku 1: ");
gets (str1);
printf ("Vvedite stroku 2: ");
gets (str2);
    func(str1);
    func(str2);
}

Спасибо огромное! Завтра пойду сдаваться в универ...
Я правильно понимаю реализовано через указатели??? Пояснительную же писать буду...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2012, 20:57     Функция в строках
Еще ссылки по теме:

Элементы, расположеные на главной диагонали, в первых 3 строках выше диагонали и в последних 2 строках ниже диагонали переместить в одномерный массив C++
Функция удаления текста в скобках [2], непосредственно функция + 12кб вложений C++
Функция заполняющая массив и функция вывода массива C++

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

Или воспользуйтесь поиском по форуму:
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
13.11.2012, 20:57     Функция в строках #8
Цитата Сообщение от Grachyova Посмотреть сообщение
Я правильно понимаю реализовано через указатели
я бы не сказал, что реализовано через указатели, просто строку передаем с помощью указателя.
Yandex
Объявления
13.11.2012, 20:57     Функция в строках
Ответ Создать тему
Опции темы

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