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

Строки (доработка) - C++

Восстановить пароль Регистрация
 
igorfors
0 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 29
23.11.2013, 18:30     Строки (доработка) #1
Составить программу,которая вычисляет ко-во слов в строке и ФОРМИРУЕТ МАССИВ ИЗ ДЛИНЫ СТРОК.
Вроде бы с первой частью справился,а вторая?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <iostream>
using namespace std;
void main()
{
char str[255];
cout<<"Vvelidte stroku: ";
gets_s(str);//ввод символов
int a;
a=0;
for (int i=0;i<strlen(str);i++)    //strlen-возвращает длину строки
 if ((str[i]==' ') && (str[i+1]!=' ')){//a-кол=во пробелов;слов на 1 больше,чем пробелов по этому а=а+1
     a=a+1;}
if (str[0]==NULL){//если первый элемент пустой(пробел),то вывод на экран 0
    a=a+0;}
cout<<"V stroke "<<a<<" slov"<<'\n';
system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2013, 18:30     Строки (доработка)
Посмотрите здесь:

Проверка и доработка кода. C++
C++ Доработка
C++ Доработка программы
Доработка калькулятора C++
C++ Двумерные массивы.(доработка)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Liden
17 / 17 / 2
Регистрация: 19.11.2013
Сообщений: 83
23.11.2013, 19:13     Строки (доработка) #2
Не справился)))ты проверял программу?)))
igorfors
0 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 29
23.11.2013, 19:24  [ТС]     Строки (доработка) #3
Ну вроде как да,а что надо исправить?
Liden
17 / 17 / 2
Регистрация: 19.11.2013
Сообщений: 83
23.11.2013, 23:38     Строки (доработка) #4
Попробуй ввести одно слово) он тебе выведет ноль слов) а почему? потому что пробелы не найдены.
Вот я тебе код сваял, который считает слова и с пробелами и без) можно даже их в начале фигачить и все равно все считает правильно)
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
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;
void main()
{
char str[255];
cout<<"Vvelidte stroku: ";
gets_s(str);//ввод символов
int a,b;
a=1;b=0;
if (str[0]==' '){
    for (int i=0;i<strlen(str);i++){  
     if ((str[i]==' ') && (str[i+1]!=' ')){
         b++;}
    }
cout<<"V stroke "<<b<<" slov"<<'\n';
}
else{
for (int i=0;i<strlen(str);i++){  
     if ((str[i]==' ') && (str[i+1]!=' ')){
         a++;
     }}
cout<<"V stroke "<<a<<" slov"<<'\n';
}
system("pause");
}
Добавлено через 3 минуты
"ФОРМИРУЕТ МАССИВ ИЗ ДЛИНЫ СТРОК." не совсем понял данную формулировку) для чего массив нужен? Просто чтобы был массив с размером равным длине строк?
igorfors
0 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 29
24.11.2013, 21:55  [ТС]     Строки (доработка) #5
Вот я тоже не особо понимаю эту формулировку)Ну блин,так задали
Спасибо))
Liden
17 / 17 / 2
Регистрация: 19.11.2013
Сообщений: 83
24.11.2013, 22:08     Строки (доработка) #6
Да не за что) Подумаю над второй)
igorfors
0 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 29
24.11.2013, 22:47  [ТС]     Строки (доработка) #7
Хотя,если ничего не ввести,то пишет,что одно слово
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2013, 23:42     Строки (доработка)
Еще ссылки по теме:

Задача на структуры. Доработка! C++
Доработка программы с++ C++
Доработка программы с++ C++

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

Или воспользуйтесь поиском по форуму:
Liden
17 / 17 / 2
Регистрация: 19.11.2013
Сообщений: 83
24.11.2013, 23:42     Строки (доработка) #8
igorfors

Добавлено через 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
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;
void main()
{
char str[255];
cout<<"Vvelidte stroku: ";
gets_s(str);//ввод символов
int a,b,c;
a=1;b=0,c=0;
if (str[0]==NULL){
cout<<"V stroke "<<b<<" slov"<<'\n';
}
else if (str[0]==' '){
    for (int i=0;i<strlen(str);i++){  
     if ((str[i]==' ') && (str[i+1]!=' ')){
         c++;}
    }
cout<<"V stroke "<<c<<" slov"<<'\n';
}
else{
for (int i=0;i<strlen(str);i++){  
     if ((str[i]==' ') && (str[i+1]!=' ')){
         a++;
     }}
cout<<"V stroke "<<a<<" slov"<<'\n';
}
system("pause");
}
Добавлено через 8 минут
igorfors, Насчет второй части: создай переменную-счетчик для подсчета пробелов. Найдешь кол-во пробелов и отнимешь это число от strlen(str) получишь длину строк массива. Чтобы сформировать массив:
C++
1
2
char *str2=new char [длина строк массива];
delete [] str2;
Yandex
Объявления
24.11.2013, 23:42     Строки (доработка)
Ответ Создать тему
Опции темы

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