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

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

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

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

04.01.2014, 20:34. Просмотров 236. Ответов 2
Метки нет (Все метки)

Дана строка(все слова разделены запятыми): word1,word2,word3,word4
Нужно написать функцию, которая будет возвращать определенное слово.
Вот что получилось:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
char* slovo(char* str, int count)
{
    int k=1;
char *strs="Error";
char * pch = strtok (str,","); 
 while (pch != NULL)                        
  {
      if(k==count)
          strs=pch;
            
            pch = strtok (NULL, ",");
 
            k++ ;
 }
 return strs;
    }
Она работает... Но при повторном вызове возвращает error...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2014, 20:34     Функция, возвращающая слово из строки
Посмотрите здесь:
C++ Функция возвращающая K-е слово строки
C++ Функция возвращающая абсолютное разницу первого и второго параметров и функция типа int, возвращающая минимальное из трех целых чисел
Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки C++
Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки C++
C++ Функция меняющая местами последнее слово строки на слово с указанным номером
Функция, выделяющая первое слово из строки C++
C++ Функция, возвращающая vector
C++ Функция, возвращающая массив
Функция, возвращающая массив C++
C++ Функция возвращающая константу
C++ Функция возвращающая массив
Функция возвращающая массив C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alexcoder
1462 / 676 / 88
Регистрация: 03.06.2009
Сообщений: 3,504
Завершенные тесты: 1
05.01.2014, 10:09     Функция, возвращающая слово из строки #2
Потому что strtok изменяет строку, разделители заменяет нулями.
Нужно либо делать копию строки и работать strtok с копией, либо не использовать strtok.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
05.01.2014, 11:30     Функция, возвращающая слово из строки #3
У тебя должен прерываться цикл оператором break; если условие в 8-й строке истинно.
Yandex
Объявления
05.01.2014, 11:30     Функция, возвращающая слово из строки
Ответ Создать тему
Опции темы

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