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

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

Войти
Регистрация
Восстановить пароль
 
понтуног
-177 / 0 / 0
Регистрация: 24.12.2013
Сообщений: 118
#1

Функция, выделяющая первое слово из строки - C++

17.11.2014, 14:42. Просмотров 1137. Ответов 16
Метки нет (Все метки)

Создать программу которая выделяет первое слово из строки.
Нужно использовать именно функцию, спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2014, 14:42     Функция, выделяющая первое слово из строки
Посмотрите здесь:

В переменную типа string записывается только первое слово строки C++
C++ Переход на следующую строку, первое слово строки
C++ Считывается только первое слово из строки
C++ Выделить первое слово из строки(работа с указателями)
C++ Для каждой строки файла переставить первое и среднее слово
Даны два слова.Верно ли,что первое слово начинается на ту же букву,на которую заканчивается второе слово (работа с символами строки) C++
Строки. Перевернуть первое слово. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4944 / 4282 / 1431
Регистрация: 14.04.2014
Сообщений: 16,804
17.11.2014, 14:52     Функция, выделяющая первое слово из строки #2
C++
1
2
char s[100], *p;
p = strtok(s, " ");
zss
Модератор
Эксперт С++
6248 / 5851 / 1891
Регистрация: 18.12.2011
Сообщений: 14,993
Завершенные тесты: 1
17.11.2014, 14:55     Функция, выделяющая первое слово из строки #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void SelectFirstWord(char *src,char* result)
{
     while( *src!=' ' && *src!=0)
        *(result++)=*(src++);
     *result=0;
}
int main()
{
     char res[50],s[]="qwerty asd ff  ggg hhhh jjjj 123";
     SelectFirstWord(s,res);
     cout<<res;
     return 0;
}
понтуног
-177 / 0 / 0
Регистрация: 24.12.2013
Сообщений: 118
17.11.2014, 15:05  [ТС]     Функция, выделяющая первое слово из строки #4
zss, в 4 строке как-то сложно написано, не понимаю что там происходит, ты не мог бы добавить комментарии, пожалуйста
CheshireCat
Эксперт С++
2891 / 1240 / 78
Регистрация: 27.05.2008
Сообщений: 3,345
17.11.2014, 15:08     Функция, выделяющая первое слово из строки #5
C++
1
2
     char res[50],s[]="  Мама мыла раму.";
     SelectFirstWord(s,res);
понтуног
-177 / 0 / 0
Регистрация: 24.12.2013
Сообщений: 118
17.11.2014, 15:14  [ТС]     Функция, выделяющая первое слово из строки #6
CheshireCat, Уважаемый эксперт, вы не подскажете, что происходит в этой строке программы?
C++
1
*(result++)=*(src++);
И какую роль играет переменная src в строке ниже
C++
1
while( *src!=' ' && *src!=0)
CheshireCat
Эксперт С++
2891 / 1240 / 78
Регистрация: 27.05.2008
Сообщений: 3,345
17.11.2014, 15:26     Функция, выделяющая первое слово из строки #7
В цикле очередной символ сравнивается с пробелом и с концом строки. Цикл заканчивается, когда встречен либо пробел, либо конец строки.
А *(result++)=*(src++); - это типовое посимвольное копирование из src в result.
понтуног
-177 / 0 / 0
Регистрация: 24.12.2013
Сообщений: 118
17.11.2014, 15:33  [ТС]     Функция, выделяющая первое слово из строки #8
CheshireCat, А как можно написать эту строку в более простом виде?
C++
1
*(result++)=*(src++);
Kerry_Jr
Модератор
Эксперт PHP
2142 / 1938 / 677
Регистрация: 14.05.2014
Сообщений: 5,681
Записей в блоге: 1
Завершенные тесты: 5
17.11.2014, 15:43     Функция, выделяющая первое слово из строки #9
понтуног,
C++
1
2
3
4
5
6
7
void SelectFirstWord(char *src,char* result)
{
     int i = 0;
     while( src[i]!=' ' && src[i]!=0)
        result[i]=src[i++];
     result[i]=0;
}
понтуног
-177 / 0 / 0
Регистрация: 24.12.2013
Сообщений: 118
17.11.2014, 15:47  [ТС]     Функция, выделяющая первое слово из строки #10
Kerry_Jr, может я и не силен в с++, но осмелюсь спросить, где изменяется переменная "i" для выполнения цикла?
Kerry_Jr
Модератор
Эксперт PHP
2142 / 1938 / 677
Регистрация: 14.05.2014
Сообщений: 5,681
Записей в блоге: 1
Завершенные тесты: 5
17.11.2014, 15:55     Функция, выделяющая первое слово из строки #11
Цитата Сообщение от понтуног Посмотреть сообщение
где изменяется переменная "i"
здесь
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
result[i]=src[i++];
понтуног
-177 / 0 / 0
Регистрация: 24.12.2013
Сообщений: 118
17.11.2014, 17:00  [ТС]     Функция, выделяющая первое слово из строки #12
Kerry_Jr, тут изменяется номер символа, это как в одномерном массиве, или я ошибаюсь
Kerry_Jr
Модератор
Эксперт PHP
2142 / 1938 / 677
Регистрация: 14.05.2014
Сообщений: 5,681
Записей в блоге: 1
Завершенные тесты: 5
17.11.2014, 17:24     Функция, выделяющая первое слово из строки #13
понтуног, С-строка - это одномерный массив символов; завершающим символом строки (но не обязательно завершающим элементом массива) является нуль-символ или нуль-терминатор
понтуног
-177 / 0 / 0
Регистрация: 24.12.2013
Сообщений: 118
17.11.2014, 17:49  [ТС]     Функция, выделяющая первое слово из строки #14
Kerry_Jr, а ты не мог бы дать свои контакты, скайп или вконтакте, что-бы я смог с тобой пообщатся вне форума, а то ждать ответа тут очень долго
понтуног
-177 / 0 / 0
Регистрация: 24.12.2013
Сообщений: 118
18.11.2014, 22:26  [ТС]     Функция, выделяющая первое слово из строки #15
А если слова будет разделять запятая а не пробел?
понтуног
-177 / 0 / 0
Регистрация: 24.12.2013
Сообщений: 118
18.11.2014, 22:33  [ТС]     Функция, выделяющая первое слово из строки #16
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cstdio>
using namespace std;
 
 
 
void slovo1(char *simv,char* result)
{
     int i = 0;
     while( simv[i]!=' ' || simv[i]!=',' || simv[i]!='.' && simv[i]!=0)
        result[i]=simv[i++];
     result[i]=0;
}
 
 
int main()
{
     char res[50],s[50];
     cin>>s;
     slovo1(s,res);
     cout<<res;
     return 0;
}
Программа выводит первое слово из строки с помощью функции, но не запускается что-то(точно знаю, что что-то не так в условии в функции)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2014, 22:53     Функция, выделяющая первое слово из строки
Еще ссылки по теме:

Приписать первое слово второй строки к первой C++
C++ Как считать первое слово из каждой строки?
C++ Определить, содержит ли последнее слово строки букву, с которой начинается первое слово
C++ Азбука Морзе, кодируется только первое слово строки
C++ Заменить первое слово строки тремя звездочками

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

Или воспользуйтесь поиском по форуму:
Dennis Ritchie
546 / 138 / 29
Регистрация: 27.07.2014
Сообщений: 2,445
18.11.2014, 22:53     Функция, выделяющая первое слово из строки #17
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
void slovo1(char *simv, char *result)
{
     int i = 0;
     while(simv[i] != ' ' && simv[i] != ',' && simv[i] != '.' && simv[i] != 0)
        result[i] = simv[i++];
     result[i] = 0;
}
 
int main()
{
     char res[50], s[50];
     cin >> s;
     slovo1(s, res);
     cout << res;
     return 0;
}
Yandex
Объявления
18.11.2014, 22:53     Функция, выделяющая первое слово из строки
Ответ Создать тему
Опции темы

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