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

Какой функцией можно посчитать количество данных слов в строке? - C++

Восстановить пароль Регистрация
 
Fusix
0 / 0 / 0
Регистрация: 08.10.2010
Сообщений: 133
26.02.2011, 12:44     Какой функцией можно посчитать количество данных слов в строке? #1
Несколько вопросов по строкам и char
1. Какой функцией можно посчитать кол-во данных слов с строке?
2. Какой функцией можно вырезать данное слово из строки?
3. Например есть строка: "exec -p C:\start.exe" как получить только "C:\start.exe"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
26.02.2011, 12:54     Какой функцией можно посчитать количество данных слов в строке? #2
Цитата Сообщение от Fusix Посмотреть сообщение
Например есть строка: "exec -p C:\start.exe" как получить только "C:\start.exe"
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
{
    int i;
    char string[] = "exec -p C:\\start.exe";
    char * pch = NULL;
 
    printf ("source string: \n%s\n\n", string);
    printf ("after split: \n");
 
    pch = strtok (string, " ");
    for (i = 0; pch != NULL; ++i) {
        printf ("%2d. %s\n", i + 1, pch);
        pch = strtok (NULL, " ");
    }
 
    printf ("\n");
    return 0;
}
Код
source string:
exec -p C:\start.exe

after split:
 1. exec
 2. -p
 3. C:\start.exe
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
26.02.2011, 12:54     Какой функцией можно посчитать количество данных слов в строке? #3
Цитата Сообщение от Fusix Посмотреть сообщение
1. Какой функцией можно посчитать кол-во данных слов с строке?
strtok()
Цитата Сообщение от Fusix Посмотреть сообщение
2. Какой функцией можно вырезать данное слово из строки?
strtok()
Цитата Сообщение от Fusix Посмотреть сообщение
3. Например есть строка: "exec -p C:\start.exe" как получить только "C:\start.exe"
C
1
2
3
4
char str[BUFSIZ] = "exec -p C:\\start.exe", wrd[BUFSIZ] = "C:\\start.exe", *p;
  for(p = strtok(str, " "); p; p = strtok(NULL, " "))
    if(!strcmp(p, wrd))
      printf("%s", p);
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
26.02.2011, 12:56     Какой функцией можно посчитать количество данных слов в строке? #4
asics, для такого примера лучше воспользоваться функцией strstr()
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
26.02.2011, 12:57     Какой функцией можно посчитать количество данных слов в строке? #5
fasked, Да,наверно так будет логичней.
vinternete
2 / 3 / 1
Регистрация: 02.11.2010
Сообщений: 129
28.02.2011, 09:56     Какой функцией можно посчитать количество данных слов в строке? #6
а как сделать такое:
строкой вводиться число 123132,234 и разделяется на 2 числа
123132
и
234
но только уже в int'e??
IrineK
Заблокирован
28.02.2011, 11:03     Какой функцией можно посчитать количество данных слов в строке? #7
А разделитель - именно запятая, или может быть и точка?

Добавлено через 28 минут
Просто, если вы с консоли вводите 123132,234 через запятую,то это сразу можно считать как два int:
C++
1
2
3
int a,b;
...
cin>>a>>b;
vinternete
2 / 3 / 1
Регистрация: 02.11.2010
Сообщений: 129
28.02.2011, 20:00     Какой функцией можно посчитать количество данных слов в строке? #8
в задании к сожалению сказано, что надо через строку разбивать...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2011, 20:12     Какой функцией можно посчитать количество данных слов в строке?
Еще ссылки по теме:

Посчитать количество слов в строке C++
Посчитать количество слов в строке, содержащих 4 буквы C++
C++ Cтроки, vector. Посчитать количество одинаковых слов в строке

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

Или воспользуйтесь поиском по форуму:
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
28.02.2011, 20:12     Какой функцией можно посчитать количество данных слов в строке? #9
vinternete, Можно как-то так
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
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <string>
#include <cctype>
#include <sstream>
 
int char_to_int(const char ch)
{
    return ch - '0';
}
 
int get_cnt_digit_num(int n)
{
    std::ostringstream ost;
    ost << n;
    return ost.str().length();
}
 
 
 
void func(const std::string &str, int &before_point, int &after_point)
{
  before_point = 0, after_point = 0;
  bool flag = false;
 
  for(int i = 0; i < str.length(); ++i)
  {
    if(isdigit(str[i]) && !flag)
      after_point = after_point * 10 + char_to_int(str[i]);
 
    else if(str[i] == '.' || str[i] == ',')
      flag = true;
 
    else if(isdigit(str[i]) && flag)
      before_point = before_point * 10 + char_to_int(str[i]);
  }
}
 
int main()
{
  std::string str("300.122");
  int before_point, after_point;
  func(str, before_point, after_point);
  std::cout << after_point << ' ' << before_point;
  return 0;
}
Yandex
Объявления
28.02.2011, 20:12     Какой функцией можно посчитать количество данных слов в строке?
Ответ Создать тему
Опции темы

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