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

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

Войти
Регистрация
Восстановить пароль
 
vasiliy21
26 / 26 / 2
Регистрация: 24.10.2012
Сообщений: 135
#1

Вывод всех символов строки, расположенных после первого символа ":" - C++

02.11.2012, 18:27. Просмотров 794. Ответов 5
Метки нет (Все метки)

Есть задача:
С клавиатуры вводится строка. Составить программу, которая выводит на экран
все символы, расположенные после первого символа ":"; подсчитывает количество предложений,
содержащие нечетное количество слов; удаляет из текста все слова, которые расположены после
ком.

Подскажите почему выводит этот ноль?

Вывод всех символов строки, расположенных после первого символа ":"

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
#include <iostream>
#include <string.h>
#include <conio.h>
 
const int n=10;
 
using namespace std;
 
void krapku(char []);
void koma(char []);
void kilkistneparnuxrechen(char[],int,int,int);
 
int main(){
    char str[n];
    krapku(str);
    char str1[n];
    koma(str1);
    
   int count = 0;
   int size; 
   int word = 1; ;
   char str2[100];  
   kilkistneparnuxrechen(str2,word,count,size);
getch();
return 0;
}
 
void krapku(char str[n])
{
     cout<<"vv string z : "<<endl;
     for(int i=0;i<n;i++)
       cin>>str[i];
    for(int i=0;i<n;i++){
        if(str[i]==':')
           for(int j=i+1;j<n;j++)
               cout<<str[j];
                          
        }
 }
void koma(char str1[n])
{
     cout<<endl;
     cout<<"vv string z ,"<<endl;
     int i=0;
    for( i=0;i<n;i++)
    cin>>str1[i];
    for(i=0;i<n;i++){ 
                       if(str1[i]==',')
                       for(int j=i;j<n;j++)
                       str1[j]='\0';
                       }
for( i=0;i<n;i++)
    cout<<str1[i];  
 }
 void kilkistneparnuxrechen(char str[100],int word,int count,int size){
{
    cout << endl;
    cout << "Enter string" << endl; 
    gets(str);  
    size = strlen(str);
    for (int i = 0; i < size; i++) 
    { 
        if(str[i] == ' ') 
            word++; 
        if(str[i] == '?' || str[i] == '!' || str[i] == '.') 
        { 
            if(word % 2 == 0) 
                count++; 
            word = 1; 
        } 
    } 
    cout << count << endl;
}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2012, 18:27     Вывод всех символов строки, расположенных после первого символа ":"
Посмотрите здесь:

C++ Ввести строку символов после чего заменить все буквы "а" на ноль
Замена в строке каждого второго символа "!" на "$" C++
C++ Расположить элементы массива, лежащие до первого символа "к", в порядке, обратном алфавитному, и вывести на печать отсортирванный массив данных
C++ Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него
Вывод цифр с помощью символа "*" C++
C++ Дополнить строки знаками "+", чтобы все строки в нем имели длину 80 символов
Удалить из двусвязного списка все элементы до первого "*" и после последнего "*" C++
Подсчитать в строке количество символов, меньших символа "К" C++
Через каждые 5 символов добавить пробел и посчитать количество символа "X" C++
Рразделение строки на две части до первого вхождения заданного символа и после него C++
C++ Вывод всех символов слова, кроме первого
Getchar() возвращает EOF сразу после чтения первого символа строки C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vasiliy21
26 / 26 / 2
Регистрация: 24.10.2012
Сообщений: 135
02.11.2012, 18:47  [ТС]     Вывод всех символов строки, расположенных после первого символа ":" #2
Почему не работает
C++
1
gets(str);
BumerangSP
4284 / 1406 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
02.11.2012, 18:48     Вывод всех символов строки, расположенных после первого символа ":" #3
C++
1
2
for(int i=0;i<n;i++)
       cin>>str[i];
Вы символы должны вводить, а не строку целиком.
vasiliy21
26 / 26 / 2
Регистрация: 24.10.2012
Сообщений: 135
02.11.2012, 18:51  [ТС]     Вывод всех символов строки, расположенных после первого символа ":" #4
Но gets(str); должно работать все равно!
BumerangSP
4284 / 1406 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
02.11.2012, 18:57     Вывод всех символов строки, расположенных после первого символа ":" #5
Поставьте getchar(); перед gets. Нужно буфер очистить.

Добавлено через 1 минуту
И, раз уж нужно именно строку ввести, то надо исправить:
C++
1
2
for(int i=0;i<n;i++)
       cin>>str[i];
на:
C++
1
cin>>str;
В другой функции аналогично.
kravam
быдлокодер
1695 / 874 / 44
Регистрация: 04.06.2008
Сообщений: 5,342
02.11.2012, 18:59     Вывод всех символов строки, расположенных после первого символа ":" #6
Цитата Сообщение от vasiliy21 Посмотреть сообщение
Но gets(str); должно работать все равно!
видать какая-то фигня в буфере остаётся, надо его очистить, вот так:
C++
1
2
3
4
5
 void kilkistneparnuxrechen(char str[100],int word,int count,int size){
{
    cout << endl;
    fflush (stdin);
    cout << "Enter string" << endl;
...И да, обрати внимание на мою подпись!
Yandex
Объявления
02.11.2012, 18:59     Вывод всех символов строки, расположенных после первого символа ":"
Ответ Создать тему
Опции темы

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