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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.86
Hitchenson
0 / 0 / 0
Регистрация: 14.04.2012
Сообщений: 17
#1

Определить количество символов введённой строки - C++

21.10.2012, 18:30. Просмотров 2593. Ответов 20
Метки нет (Все метки)

Написать программу, которая позволяет вводить с клавиатуры строку, содержащую более одного слова, и определять: а) количество символов введённой строки; б) содержит ли строка слова одинаковой длины; в) ко-личество запятых; г) определять количество слов, заканчи-вающихся на заданную пользователем букву. Необходимо учесть, что при вводе строки, могут ис-пользоваться не только пробелы, но и знаки пунктуации.



Сделал А) В) и банальным образом Г). Очень любопытно можно ли посчитать длину токенов? сравнить их? выбрать те в которых паследний символ вводится с клавиатуры как в задание?
Ну и еще не могу найти одинаковые слова, кто подскажет буду благодарен.


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
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
int main() {
const int max=100;
char str1[max],str2[2]=",",str3[2]="  ",probeli[10]=" /.,",c[max];
char *token,*str4[max];
int i;
cout <<"vvedite stroku: " << endl;
cin.get(str1, max);
cout << endl;
cout << "Dlina stroki vklu4aya probeli: " << strlen(str1) << " simvolov" << endl;
cout << endl;
 
 
int k=0;
for (i=0;i<strlen(str1);i++) {
       if (str1[i]==str2[0]) {
       k++;
       }
}
cout << "koli4estvo zapyatih: " << k << endl;
cout << endl;
 
int k1=0;
for (i=0;i<strlen(str1);i++) {
       if ((str1[i]==str3[0]) && (str1[i+1]!=str3[0]))  {
       k1++;
       }
}
cout << "koli4estvo slov: " << k1+1 << endl;
cout << endl;
 
int k2=0;
cout << "vvedite simvol: " << endl;
cin >> c;
for (i=0;i<strlen(str1);i++) {
   if ((str1[i]==c[0]) && ((str1[i+1]==str3[0])||(str1[i+1]==NULL)))
   k2++;
   }
 
cout << "Koli4estvo slov zakan4ivaushihsya na vibranniy simvol: " << k2 << endl;
cout << endl;
 
 
int kol=0,j;
token=strtok(str1,probeli);
while (token!=NULL) {
token=strtok(NULL, probeli);
cout << token << endl;
kol++;
}
cout << "Koli4estvo tokenov: " << kol  << endl;
 
 
cout << "vvedite simvol: " << endl;
cin >> c;
while (token!=NULL) {
token=strtok(NULL, probeli);
*str4=strrchr(token,'c');
cout << str4 << endl;
}
 
 
 
getch();
return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2012, 18:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить количество символов введённой строки (C++):

Определить количество символов введённой строки - C++
1) Написать программу, которая позволяет вводить с клавиатуры строку, содержащую более одного слова, и определять: а) количество символов...

Определить количество символов строки, не являющихся цифрами - C++
разработать алгоритм обработки строки символов,которая может содержать буквы английского алфавиты,цифры,знаки препинания,пробелы,знаки...

Определить количество символов в кратчайшем слове строки - C++
Написать программу, которая: • Выводит текст на экран дисплея; • Определяет количество символов в кратчайшем слове; • По нажатию...

Определить количество символов между первой и последней двоеточиями строки - C++
Определить количество символов между первой и последней двоеточиями строки.

Реализовать ввод строки с консоли пользователем и найти количество заданного символа в введённой строке - C++
Ввести предложение и подсчитать сколько букв 'н' в нем.

Дано название футбольного клуба.Определить количество символов в нем (строки) - C++
Дано название футбольного клуба.Определить количество символов в нем (строки)

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Hitchenson
0 / 0 / 0
Регистрация: 14.04.2012
Сообщений: 17
23.10.2012, 22:20  [ТС] #16
вот это и не могу написать....
0
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
24.10.2012, 00:08 #17
Что-то вроде этого:
C++
1
2
3
4
5
 for (int i=0; i<strlen(s); i++)
   if (s[i]==' ')
    while (s[++i]!=' ')
     buf[j++]=s[i];
  ...
И т.д.
В данном примере в массив символов "buf" записывается слово.
1
Hitchenson
0 / 0 / 0
Регистрация: 14.04.2012
Сообщений: 17
24.10.2012, 18:31  [ТС] #18
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
int kol=1,s4etmin=1,s4etmax=1,j,min,maxi;
token=strtok(str1,probeli);
j=strlen(token);
cout << token << endl;
cout << kol << "-aya leksema imeet takoe koli4estvo simvolov:" << j << endl;
min=j;
maxi=j;
s4etmin=2;
s4etmax=2;
system("PAUSE");
cout  << endl;
while (token!=NULL) {
 
token=strtok(NULL, probeli);
j=strlen(token);
 
   if (j==(min || max) ) {
   cout << kol << "-ya leksema ravna " << s4etmin << "-oi lekseme po koli4estvu znakov" << endl;
   s4etmin++;
   s4etmax++;
   }
   if (j<min) {
   min=j;
   s4etmin++;
   }
   if (j>maxi)  {
   maxi=j;
   s4etmax++;
   }
 
kol++;
cout << token << endl;
cout << kol << "-aya leksema imeet takoe koli4estvo simvolov:" << j << endl;
system("PAUSE");
cout  << endl;
}
всё хорошо считает и выводит длину лексем( за исключением конца, наставил паузы чтлбы все было под моем руководством, как тока он считает паследнюю лексему цикл виснет как и вся прога) и еще сволочь сравнивать не хочет, т.е. не работает там где IF-ы, не хочет делать ни 1 вывод не знаю почему, даже если все лексемы делаю одинаковыми по кол-ву
0
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
24.10.2012, 19:47 #19
Здесь, кажется, много лишнего. Что точно должна делать эта программа? Она, кстати, неполная.
0
Hitchenson
0 / 0 / 0
Регистрация: 14.04.2012
Сообщений: 17
24.10.2012, 23:13  [ТС] #20
это не программа это блок, просто большой блок программы. Щас скину полную, я по прежнему корпчу над тем чтобы она сравнивала слова в строке) и выводила эти результаты если они равны.

Добавлено через 8 минут
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
85
86
87
88
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
int main() {
const int max=100;
char str1[max],str2[2]=",",str3[2]="  ",probeli[10]=" /.,",c[max];
char *token,*str4[max];
int i;
cout <<"vvedite stroku: " << endl;
cin.get(str1, max);
cout << endl;
cout << "Dlina stroki vklu4aya probeli: " << strlen(str1) << " simvolov" << endl;
cout << endl;
 
 
int k=0;
for (i=0;i<strlen(str1);i++) {
       if (str1[i]==str2[0]) {
       k++;
       }
}
cout << "koli4estvo zapyatih: " << k << endl;
cout << endl;
 
int k1=0;
for (i=0;i<strlen(str1);i++) {
       if ((str1[i]==str3[0]) && (str1[i+1]!=str3[0]))  {
       k1++;
       }
}
cout << "koli4estvo slov: " << k1+1 << endl;
cout << endl;
 
int k2=0;
cout << "vvedite simvol: " << endl;
cin >> c;
for (i=0;i<strlen(str1);i++) {
   if ((str1[i]==c[0]) && ((str1[i+1]==str3[0])||(str1[i+1]==NULL)))
   k2++;
   }
 
cout << "Koli4estvo slov zakan4ivaushihsya na vibranniy simvol: " << k2 << endl;
cout << endl;
 
 
int kol=1,s4etmin=1,s4etmax=1,j,min,maxi;
token=strtok(str1,probeli);
j=strlen(token);
cout << token << endl;
cout << kol << "-aya leksema imeet takoe koli4estvo simvolov:" << j << endl;
min=j;
maxi=j;
s4etmin=2;
s4etmax=2;
system("PAUSE");
cout  << endl;
while (token!=NULL) {
 
token=strtok(NULL, probeli);
j=strlen(token);
 
   if (j==(min || max) ) {
   cout << kol << "-ya leksema ravna " << s4etmin << "-oi lekseme po koli4estvu znakov" << endl;
   s4etmin++;
   s4etmax++;
   }
   if (j<min) {
   min=j;
   s4etmin++;
   }
   if (j>maxi)  {
   maxi=j;
   s4etmax++;
   }
 
kol++;
cout << token << endl;
cout << kol << "-aya leksema imeet takoe koli4estvo simvolov:" << j << endl;
system("PAUSE");
cout  << endl;
}
 
 
 
getch();
return 0;
}
Добавлено через 2 часа 8 минут
ночной АП
0
Hitchenson
0 / 0 / 0
Регистрация: 14.04.2012
Сообщений: 17
27.10.2012, 19:59  [ТС] #21
закройте
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2012, 19:59
Привет! Вот еще темы с ответами:

Дана последовательность символов, в начале которой имеется некоторое количество одинаковых символов. Определить это количество - C++
8.10.2. Помогите, пожалуйста, решить задачу в С++. Дана последовательность символов, в начале которой имеется некоторое...

Строки. Определить минимальное количество первых символов, по которым можно различать слова с заданного текста. - C++
Задача. Определить минимальное количество первых символов, по которым можно различать слова с заданного текста. Направьте, пожалуйста,...

Определить количество слов в заданном тексте и количество символов в каждом слове - C++
Определить количество слов в заданном тексте и количество символов в каждом слове

В конец каждой строки текстового файла дописать количество символов этой строки - C++
Помогите, нужно : &quot;В конец каждой строки текстового файла дописать количество символов этой строки&quot;. Получается только в начало, не знаю...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.10.2012, 19:59
Ответ Создать тему
Опции темы

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