Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2009, 11:55   #1
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию найти ошибку

никак немогу написать правильную фунццию вот код
Код:
#include <iostream>
//#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <conio.h>
#include <string.h>
/*З клавіатури вводиться текстовий рядок. Скласти програму, яка підраховує кількість слів, 
які містять однакову кількість голосних і приголосних літер; виводить на екран найдовше слово; видаляє з тексту всі слова-паліндроми. */
using namespace std;
  void ShortStory()
                        {
                            cout<<"У попа была собака, он ее любил."<<endl;
                            cout<<"Она съела кусок мяса, он ее убил,"<<endl;
                            cout<<"В землю закопал и надпись написал:"<<endl;
                            Sleep(500);
                            ShortStory();
                        }
int copy(string a,string b,int c,int d);
int k=0;

  
       
main()
{
       int i,nofs;
       nofs=0;
       SetConsoleCP(1251);
       SetConsoleOutputCP(1251);
       string s1;
       //ShortStory();
       getline(cin, s1);
       for (i = 0; s1[i] != '\0';i++)
            {                  
               if ((isspace(s1[i])) && (isspace(s1[i-1])==0)) nofs+= 1;
            }
       //cout << nofs;
       int spn[nofs],ss[nofs + 1];
       int j=0;
       for (i = 0; s1[i] != '\0'; ++i)
            {                  
               if (isspace(s1[i])) 
                  {
                       spn[j]=i;
                       j++;
                  }
               
            }
     for (i=0;i<=nofs-1;i++) cout << "spn[ "<< i << "] = " << spn[i]<< endl;
     copy(s1,ss[0],0,spn[0]); // тут пише 50 C:\Dev-Cpp\2.3.0.cpp   initializing argument 1 of `std::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]' 
     cout <<spn[0];
     getch();
  
int copy(string from,string to,int firs,int lenght)
/* Ця функція має символи починаючи з first довжиною lenght в рядок to */
     int tmp;
         for(tmp=first;tmp<=to)  
                                 {
                                            to+=from[i];
                                            return to;
                                 }   
       
      
       
}
функция copy
rUs_LAN вне форума Ответить с цитированием
Старый 13.05.2009, 12:39   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Во-первых, разберитесь со скобками и с именами переменных (int firs).
Во-вторых, посмотрите на то, что принимает функция, и то, что вы ей посылаете. Намекну: принимает строку, а вы ей даете число.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 13.05.2009, 13:52   #3
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

спасибо но у меня еще возникла еще одна ошибка
Код:
int copy(string from,string to,int first,int lenght)
{
/* Ця функція має символи починаючи з first довжиною lenght в рядок to */
     int tmp;
         for(tmp=first;tmp<=lenght;tmp++)  
                                 {
                                            to+=from[tmp];
                                            return to;
                                 }   
}
67 C:\Dev-Cpp\2.3.0.cpp cannot convert `std::string' to `int' in return
rUs_LAN вне форума Ответить с цитированием
Старый 13.05.2009, 13:56   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
67 C:\Dev-Cpp\2.3.0.cpp cannot convert `std::string' to `int' in return
Вам же компилятор все говорит. Тип значения, возвращаемого функцией - int, а вы пытаетесь вернуть string.
Притом посмотрите внимательно. Вы выйдете из функции на первой же итерации.
Определитесь, что будет делать функция. Изменять переданную ей строку (тогда возвращать ничего не надо) или возвращать ее (тогда нужно передавать только одну строку).
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 13.05.2009, 14:04   #5
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

у меня тогда вопрос как зделать так штоб функция возвращала string
Код:
srting copy(string from,string to,int first,int lenght)
{
/* Ця функція має скопіювати символи починаючи з first довжиною lenght в рядок to */
     int tmp;
         for(tmp=first;tmp<=lenght;tmp++)  
                                 {
                                            to+=from[tmp];
                                            return to;
                                 }   
}
60 C:\Dev-Cpp\2.3.0.cpp `srting' does not name a type
p.s. сорі за погану російську
rUs_LAN вне форума Ответить с цитированием
Старый 13.05.2009, 14:12   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
60 C:\Dev-Cpp\2.3.0.cpp `srting' does not name a type
Вижу, вы по-прежнему не обращаете внимания на сообщения компилятора.
Вам явно пишут "НЕТ ТАКОГО ТИПА".

Вот вам пример.
Код:
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;

string my_copy(string source, int start, int length)
{
 string result="";
 for(int i=start; (i<start+length)&&i<source.length(); i++)
  result += source[i];
return result;
}

int main()
{
string str = "Test string";
cout<<str<<endl;
cout<<my_copy(str,5,6)<<endl;

getch();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 13.05.2009, 14:20   #7
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

дякую
p.s. просто недавно почав вчити с++ і не особо знаю синтаксис
p.p.s. модератори не баньте за укр плс )) більше не буду, чесно
rUs_LAN вне форума Ответить с цитированием
Старый 14.05.2009, 11:57   #8
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию опять

нехотел создавать еще одну тему теперь у меня возникла проблема с switch вот код
Код:
int kgol=0,kpr=0;
      for(i=0;i<nofs;i++)
                         {
                              for(int z=0;l(ss[i]);z++)
                                {
                                        switch(ss[i])
	                                                 {
		                                                                  case 'а': case 'о': case 'у': case 'і': case 'е':
			                                                                   kgol+=1;
			

                                                                               default:				
			                                                                               kpr+=1;
		                                                                                	break;
                                                    	}
                                }
                          }
      getch();
66 C:\Dev-Cpp\2.3.0.cpp switch quantity not an integer
заранее спасибо
rUs_LAN вне форума Ответить с цитированием
Старый 14.05.2009, 12:02   #9
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

спасибо я сам разобрался
rUs_LAN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку (С++) Alex1991 Помощь студентам 1 11.04.2009 15:19
Не могу найти ошибку. Picaso18 Паскаль, Turbo Pascal, PascalABC.NET 3 19.01.2009 17:05
Помогите найти ошибку Devoto Общие вопросы Delphi 4 18.11.2008 00:26
помогите найти ошибку MyQwErTy Помощь студентам 1 05.11.2008 21:24