Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169

Как правильно пользоваться функцией strtok

07.11.2012, 13:37. Показов 2800. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как правильно пользоваться етой ф-цией? Набросал код, надо пока разбить строку на слова(ф-ция int lek).
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
#include <string.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
void inp(char[]);
void invert(char[], int);
int count(char[], int, int);
int lek(char[], int);
void out(char[], int);
int main()
{
 char x[100];
 inp(x);
 int res = 0; 
 int size = strlen(x);
 invert(x, size);
 lek(x, size);
 count(x, size, res);
 out(x, count(x, size, res));
 return 0;
}
void inp(char x[])
 {
  cout <<"Input string:";
  gets(x);
  cout << endl;
 }
void invert(char x[], int size)
 {
  for(int i=0;i<size/2;i++)
   {
    char  a;    
    a=x[i];
    x[i]=x[size-1-i];
    x[size-1-i]=a;
   }
 }
int count(char x[], int size, int res)
{
    for (int i=0; i<size; i++)
        if (x[i]>='0' && x[i]<='9')
            res++;
    return res;
}
int lek(char x[], int size) 
{
    char* p;
    p=strtok(x, " ");
    for(int i = 0; i<size; i++)
    {
        cout<<"Slovo "<<i+1<<":"<<p[i]<<endl;
    }
    return 0;   
}
void out(char x[], int res)
 {
  cout<<"K-st cufr v recenny:  "<<res<<endl;
  cout<<"Invert str:  ";
  puts(x);
  getch();
}
Добавлено через 50 секунд
И как потом использовать ети "слова" в других ф-ция или циклах(например удалить слова которые начинаються с гласной буквы)?

Добавлено через 53 секунды
P.S. Пока оно выводит просто каждую букву, а не слово.

Добавлено через 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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
#include <string.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
void inp(char[]);
void invert(char[], int);
int count(char[], int, int);
int lek(char[], int);
int main()
{
 char x[100];
 inp(x);
 int res = 0; 
 int size = strlen(x);
  invert(x, size);
 count(x, size, res);
 lek(x, size);
 getch();
 return 0;
}
void inp(char x[])
 {
  cout <<"Input string:";
  gets(x);
  cout << endl;
 }
void invert(char x[], int size)
 {
  for(int i=0;i<size/2;i++)
   {
    char  a;    
    a=x[i];
    x[i]=x[size-1-i];
    x[size-1-i]=a;
   }
  cout<<"Invert str:  ";
  puts(x);
 }
int count(char x[], int size, int res)
{
    for (int i=0; i<size; i++)
        if (x[i]>='0' && x[i]<='9')
            res++;
    return res;
    cout<<"K-st cufr v recenny:  "<<res<<endl;
}
int lek(char x[], int size) 
{
    char* p;
    p=strtok(x, " ");
    for(int i = 0; i<size; i++)
    {
        cout<<"Slovo "<<i+1<<":"<<p[i]<<endl;
    }
    return 0;   
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.11.2012, 13:37
Ответы с готовыми решениями:

Как пользоваться функцией gettime()
Добрый вечер! Кто бы мог подробно объяснить как работает функция gettime(), откуда взять конечное и начальное время, как определить...

Как пользоваться функцией rand()?
Все привет. Пытаюсь пользоваться функцией rand(), а получаю сообщение Это разве идентификатор? #include...

Как пользоваться функцией GetFileSize() ?
Привет. В builder'e выполняю следующий код: char str = ''; unsigned long FileSize = 0; GetFileSize('C:\file.exe',...

24
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
07.11.2012, 15:29
http://en.cppreference.com/w/c... yte/strtok

Добавлено через 1 минуту
и даже с переводом: http://ru.cppreference.com/w/c... yte/strtok
2
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
08.11.2012, 18:58  [ТС]
yuron_477, А как потом ети лексемы(слова к примеру) использовать в цикле например(удалить слово при таком то условии...)
0
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
08.11.2012, 19:01
Ещё ссылочка по strtok http://www.cplusplus.com/refer... ng/strtok/
0
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
08.11.2012, 19:04  [ТС]
David Sylva, я плохо понимаю английский
0
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
08.11.2012, 19:06
автоматический переводчик от гугл, тебе в помощь.
0
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
08.11.2012, 19:14  [ТС]
David Sylva, а толку от него, там ведь только "теория", покрайней мере как толком работать с strtok я не знаю(
0
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
08.11.2012, 19:16
Там ещё внизу хорошей пример.
0
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
08.11.2012, 19:21  [ТС]
David Sylva, ну оно удалило знаки препинания, а как слово тогда удалить? Именно слово, сначала ведь надо поделить строку, а потом брать поочереди каждую лексему и проверять ее. Покрайней мере я думаю что в моем случаэ(удалить слова начинающиеся с гласной буквы) делать надо так. Как лексемы в цикл передать.7
0
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
08.11.2012, 19:25
Я тебе просто показал, где подробно написано про функцию strtok. Опиши условие задачи.
0
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
08.11.2012, 19:32  [ТС]
David Sylva, Ввести строку, удалить из нее слова которые начинаються на гласную букву. В моем коде ф-ция len делит почемуто строку по-символьно(напил кажись все верно, но не делит по словах). Остальние две ето ето другое задание.

Добавлено через 34 секунды
что делать дальше, точнее как ето делать я не знаю
0
27 / 27 / 9
Регистрация: 24.10.2012
Сообщений: 135
08.11.2012, 19:43
Я это сделал по другому! Здесь только фрагмент программы, но думаю вы догадаетесь что к чему, и как по своему сделать

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
#include <string.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
void deletes(char [], int );
void inp(char[]);
void invert(char[], int);
int count(char[], int, int);
int lek(char[], int);
int main()
{
 char x[100];
 inp(x);
 int res = 0; 
 int size = strlen(x);
  
 
 lek(x, size);
 getch();
 return 0;
}
void inp(char x[])
 {
  cout <<"Input string:";
  gets(x);
  cout << endl;
 }
 
int lek(char s[], int size) 
{
    int i;
     
    for(int i = 0; i < size; i++){
      if(s[i] == 'A'){
            for(int j = i; j < size; j++){
              if(s[j] == ' '){
                break;
                  }
                    s[j] = ' ';
                    }
            }
            
    }
 
for (i = 0; i < size; i++)
 {  if ((s[i]==' ') && (s[i+1]==' '))
    deletes(s,i+1);
}
 cout <<s;
 
}
 
 
 
void deletes(char s[], int pos)
{ int i;
if ((s[pos]== ' ') && (s[pos+1]== ' '))
{ deletes(s,pos+1); }
for (i = pos; i < strlen(s); i++)
 {
  s[i]=s[i+1];
}
s[i]=0;
 
}
1
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
08.11.2012, 20:06  [ТС]
vasiliy21, ошика, пишет что ф-ция lek должна возвращать значение. Она действительно должна возращать чтото или можна сделать ее void?
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <iostream>
#include <string.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
void inp(char[]);
void invert(char[], int);
void count(char[], int, int);
int lek(char[], int);
void deletes(char[], int);
int main()
{
 char x[100];
 inp(x);
 int res = 0; 
 int size = strlen(x);
 count(x, size, res);
 lek(x, size);
 invert(x, size);
 getch();
 return 0;
}
void inp(char x[])
 {
  cout <<"Input string:";
  gets(x);
  cout << endl;
 }
void invert(char x[], int size)
 {
  for(int i=0;i<size/2;i++)
   {
    char  a;    
    a=x[i];
    x[i]=x[size-1-i];
    x[size-1-i]=a;
   }
  cout<<"Invert str:  ";
  puts(x);
 }
void count(char x[], int size, int res)
{
    for (int i=0; i<size; i++)
        if (x[i]>='0' && x[i]<='9')
            res++;
    cout<<"K-st cufr v recenny:  "<<res<<endl;
}
int lek(char s[], int size) 
{
    int i;
    for(i = 0; i < size; i++){
      if(s[i] == 'A'){
            for(int j = i; j < size; j++){
              if(s[j] == ' '){
                break;
                  }
                    s[j] = ' ';
                    }
            }
            
    }
 
for (i = 0; i < size; i++)
 {  if ((s[i]==' ') && (s[i+1]==' '))
    deletes(s,i+1);
}
 cout <<s;
 
}
 
 
 
void deletes(char s[], int pos)
{ int i;
if ((s[pos]== ' ') && (s[pos+1]== ' '))
{ deletes(s,pos+1); }
for (i = pos; i < strlen(s); i++)
 {
  s[i]=s[i+1];
}
s[i]=0;
 
}
Добавлено через 10 минут
Уже сам немного разобрался, сделал воид, сечас еще условие правильное задам, чтоб канало так как надо)

Добавлено через 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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <string.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
void inp(char[]);
void invert(char[], int);
void count(char[], int, int);
void lek(char[], int);
void deletes(char[], int);
int main()
{
 char x[100];
 inp(x);
 int res = 0; 
 int size = strlen(x);
 //count(x, size, res);
 cout <<"String witout a-words:";
 lek(x, size);
 //invert(x, size);
 getch();
 return 0;
}
void inp(char x[])
 {
  cout <<"Input string:";
  gets(x);
  cout << endl;
 }
void invert(char x[], int size)
 {
  for(int i=0;i<size/2;i++)
   {
    char  a;    
    a=x[i];
    x[i]=x[size-1-i];
    x[size-1-i]=a;
   }
  cout<<"Invert str:  ";
  puts(x);
 }
void count(char x[], int size, int res)
{
    for (int i=0; i<size; i++)
        if (x[i]>='0' && x[i]<='9')
            res++;
    cout<<"K-st cufr v recenny:  "<<res<<endl;
}
void lek(char s[], int size) 
{
    int i;
    for(i = 0; i < size; i++){
      if(s[i] == 'A' || s[i] == 'E' || s[i] == 'Y' || s[i] == 'U' || s[i] == 'I' || s[i] == 'O' || 
          s[i] == 'a' || s[i] == 'e' || s[i] == 'y' || s[i] == 'u' || s[i] == 'i' || s[i] == 'o'){
            for(int j = i; j < size; j++){
              if(s[j] == ' '){
                break;
                  }
                    s[j] = ' ';
                    }
            }       
    }
    for (i = 0; i < size; i++)
        {
            if ((s[i]==' ') && (s[i+1]==' '))
                deletes(s,i+1);
        }
    cout <<s;
}
void deletes(char s[], int pos)
{ int i;
if ((s[pos]== ' ') && (s[pos+1]== ' '))
{ deletes(s,pos+1); }
for (i = pos; i < strlen(s); i++)
 {
  s[i]=s[i+1];
}
s[i]=0;
}
0
27 / 27 / 9
Регистрация: 24.10.2012
Сообщений: 135
08.11.2012, 20:10
Цитата Сообщение от ozzy_b Посмотреть сообщение
блин, оно удаляет все символы после гласной буквы до конца слова((
а оно что должно удалить?
0
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
08.11.2012, 20:17  [ТС]
надо удалить все слова что начинаються на гласную букву, вот пример как оно работает. http://cs419721.userapi.com/v4... mz57w4.jpg

Добавлено через 1 минуту
ето фото того как рабоет мой\твой код, оно удаляет в слове то что идет после гласной буквы(включая саму букву)
0
27 / 27 / 9
Регистрация: 24.10.2012
Сообщений: 135
08.11.2012, 20:25
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <string.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
void inp(char[]);
void invert(char[], int);
void count(char[], int, int);
void lek(char[], int);
void deletes(char[], int);
int main()
{
 char x[100];
 inp(x);
 int res = 0; 
 int size = strlen(x);
 //count(x, size, res);
 cout <<"String witout a-words:";
 lek(x, size);
 //invert(x, size);
 getch();
 return 0;
}
void inp(char x[])
 {
  cout <<"Input string:";
  gets(x);
  cout << endl;
 }
void invert(char x[], int size)
 {
  for(int i=0;i<size/2;i++)
   {
    char  a;    
    a=x[i];
    x[i]=x[size-1-i];
    x[size-1-i]=a;
   }
  cout<<"Invert str:  ";
  puts(x);
 }
void count(char x[], int size, int res)
{
    for (int i=0; i<size; i++)
        if (x[i]>='0' && x[i]<='9')
            res++;
    cout<<"K-st cufr v recenny:  "<<res<<endl;
}
void lek(char s[], int size) 
{
    int i;
    for(i = 0; i < size; i++){
      if((s[i] == 'A' || s[i] == 'E' || s[i] == 'Y' || s[i] == 'U' || s[i] == 'I' || s[i] == 'O' || 
          s[i] == 'a' || s[i] == 'e' || s[i] == 'y' || s[i] == 'u' || s[i] == 'i' || s[i] == 'o')&&s[i-1]==' '&&s[i+1]!=' '){
            for(int j = i; j < size; j++){
              if(s[j] == ' '){
                break;
                  }
                    s[j] = ' ';
                    }
            }       
    }
    for (i = 0; i < size; i++)
        {
            if ((s[i]==' ') && (s[i+1]==' '))
                deletes(s,i+1);
        }
    cout <<s;
}
void deletes(char s[], int pos)
{ int i;
if ((s[pos]== ' ') && (s[pos+1]== ' '))
{ deletes(s,pos+1); }
for (i = pos; i < strlen(s); i++)
 {
  s[i]=s[i+1];
}
s[i]=0;
}
1
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
08.11.2012, 20:38  [ТС]
vasiliy21, теперь работает, но если первое слово будет введено без пропуска, то его не удалит, но ето уже такое... спасибо большое)

Добавлено через 4 минуты
vasiliy21, и еще один вопрос, как сделать чтоб все 3 ф-ции(инвертирование строки, подсчет цифр и удаление ненужного слово) работали независимо, а то удаленная строка выводится уже инвертированой
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <string.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
void inp(char[]);
void invert(char[], int);
void count(char[], int, int);
void lek(char[], int);
void deletes(char[], int);
int main()
{
 char x[100];
 inp(x);
 int res = 0; 
 int size = strlen(x);
 invert(x, size);
 count(x, size, res);
 cout <<"String witout a-words: ";
 lek(x, size);
 getch();
 return 0;
}
void inp(char x[])
 {
  cout <<"Input string: ";
  gets(x);
  cout << endl;
 }
void invert(char x[], int size)
 {
  for(int i=0;i<size/2;i++)
   {
    char  a;    
    a=x[i];
    x[i]=x[size-1-i];
    x[size-1-i]=a;
   }
  cout<<"Invert str:  ";
  puts(x);
 }
void count(char x[], int size, int res)
{
    for (int i=0; i<size; i++)
        if (x[i]>='0' && x[i]<='9')
            res++;
    cout<<"K-st cufr v recenny:  "<<res<<endl;
}
void lek(char s[], int size) 
{
    int i;
    for(i = 0; i < size; i++){
      if((s[i] == 'A' || s[i] == 'E' || s[i] == 'Y' || s[i] == 'U' || s[i] == 'I' || s[i] == 'O' || 
          s[i] == 'a' || s[i] == 'e' || s[i] == 'y' || s[i] == 'u' || s[i] == 'i' || s[i] == 'o')&&s[i-1]==' '&&s[i+1]!=' '){
            for(int j = i; j < size; j++){
              if(s[j] == ' '){
                break;
                  }
                    s[j] = ' ';
                    }
            }       
    }
    for (i = 0; i < size; i++)
        {
            if ((s[i]==' ') && (s[i+1]==' '))
                deletes(s,i+1);
        }
    cout <<s;
}
void deletes(char s[], int pos)
{ int i;
if ((s[pos]== ' ') && (s[pos+1]== ' '))
{ deletes(s,pos+1); }
for (i = pos; i < strlen(s); i++)
 {
  s[i]=s[i+1];
}
s[i]=0;
}
0
27 / 27 / 9
Регистрация: 24.10.2012
Сообщений: 135
08.11.2012, 21:14
Опиши две отдельных строки, для инвертации и для удаления слов!

Добавлено через 7 минут
и для подсчета цифр
0
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
08.11.2012, 21:27  [ТС]
vasiliy21, типа так?
Кликните здесь для просмотра всего текста
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <iostream>
#include <string.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
void inp(char[]);
void invert(char[], int);
void count(char[], int, int);
void del(char[], int);
void deletes(char[], int);
int main()
{
 char x[100];
 inp(x);
 int res = 0; 
 int size = strlen(x);
 char* X=x;
 invert(X, size);
 count(x, size, res);
 del(x, size);
 getch();
 return 0;
}
void inp(char x[])
{
    cout <<"Input string: ";
    gets(x);
    cout << endl;
}
void invert(char X[], int size)
{
    for(int i=0;i<size/2;i++)
    {
        char  a;    
        a=X[i];
        X[i]=X[size-1-i];
        X[size-1-i]=a;
    }
    cout<<"Invert string:  ";
    puts(X);
}
void count(char x[], int size, int res)
{
    for (int i=0; i<size; i++)
        if (x[i]>='0' && x[i]<='9')
            res++;
    cout<<"Digits in string:  "<<res<<endl;
}
void del(char s[], int size) 
{
    int i;
    for(i = 0; i < size; i++)
    {
      if((s[i] == 'A' || s[i] == 'E' || s[i] == 'Y' || s[i] == 'U' || s[i] == 'I' || s[i] == 'O' || 
           s[i] == 'a' || s[i] == 'e' || s[i] == 'y' || s[i] == 'u' || s[i] == 'i' || s[i] == 'o') &&s[i-1]==' '&&s[i+1]!=' ')
      {
        for(int j = i; j < size; j++)
        {
            if(s[j] == ' '){
                break;
                  }
            s[j] = ' ';
        }
      }       
    }
    for (i = 0; i < size; i++)
    {
        if ((s[i]==' ') && (s[i+1]==' '))
            deletes(s,i+1);
    }
         cout <<"String witout a-words: "<<s;
}
void deletes(char s[], int pos)
{ 
    int i;
    if ((s[pos]== ' ') && (s[pos+1]== ' '))
        deletes(s,pos+1);
    for (i = pos; i < strlen(s); i++)
    {
        s[i]=s[i+1];
    }
    s[i]=0;
}

так тоже не канает(

Добавлено через 7 минут
а так канает)
Кликните здесь для просмотра всего текста
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <iostream>
#include <string.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
void inp(char[]);
void invert(char[], int);
void count(char[], int, int);
void del(char[], int);
void deletes(char[], int);
int main()
{
 char x[100];
 inp(x);
 int res = 0; 
 int size = strlen(x);
 char* X=x;
 cout<<"Invert string:  ";
 puts(X);
 invert(X, size);
 invert(X, size);
 count(x, size, res);
 del(x, size);
 getch();
 return 0;
}
void inp(char x[])
{
    cout <<"Input string: ";
    gets(x);
    cout << endl;
}
void invert(char X[], int size)
{
    for(int i=0;i<size/2;i++)
    {
        char  a;    
        a=X[i];
        X[i]=X[size-1-i];
        X[size-1-i]=a;
    }
}
void count(char x[], int size, int res)
{
    for (int i=0; i<size; i++)
        if (x[i]>='0' && x[i]<='9')
            res++;
    cout<<"Digits in string:  "<<res<<endl;
}
void del(char s[], int size) 
{
    int i;
    for(i = 0; i < size; i++)
    {
      if((s[i] == 'A' || s[i] == 'E' || s[i] == 'Y' || s[i] == 'U' || s[i] == 'I' || s[i] == 'O' || 
           s[i] == 'a' || s[i] == 'e' || s[i] == 'y' || s[i] == 'u' || s[i] == 'i' || s[i] == 'o') &&s[i-1]==' '&&s[i+1]!=' ')
      {
        for(int j = i; j < size; j++)
        {
            if(s[j] == ' '){
                break;
                  }
            s[j] = ' ';
        }
      }       
    }
    for (i = 0; i < size; i++)
    {
        if ((s[i]==' ') && (s[i+1]==' '))
            deletes(s,i+1);
    }
         cout <<"String witout a-words: "<<s;
}
void deletes(char s[], int pos)
{ 
    int i;
    if ((s[pos]== ' ') && (s[pos+1]== ' '))
        deletes(s,pos+1);
    for (i = pos; i < strlen(s); i++)
    {
        s[i]=s[i+1];
    }
    s[i]=0;
}
0
27 / 27 / 9
Регистрация: 24.10.2012
Сообщений: 135
08.11.2012, 21:30
канает но не инвертирует строку
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.11.2012, 21:30
Помогаю со студенческими работами здесь

Как пользоваться функцией reverse?
Всем привет подскажите пожалуста как пользоваться функцией reverse и приведите примеры

Как пользоваться функцией fgetpos, fsetpos?
Не могу понять по какому принципу они работают. Открывал файл на чтение. В файле уже были несколько строчек. Хотел считать их в чаровскую...

Что то не то с функцией strtok!!!
Вот есть код: #include&lt;string.h&gt; #include&lt;iostream.h&gt; int main() { char *string1 = &quot;sdfsdf sdfs gjhg 1 h5jj&quot;; char *string2...

как правильно пользоваться
Здравствуйте, нашел интересный код для интересной задачи (Удалить комментарии из файла), но как сделать так,чтобы программа брала input.txt...

Как в C++ правильно пользоваться полиморфизмом?
Объясните пожалуйста как правильно пользоваться полиморфизмом в плюсах. Задача такая - есть некий абстрактный класс с виртуальными...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru