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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2011, 00:43   #1
Alexander1205
Пользователь
 
Аватар для Alexander1205
 
Регистрация: 22.01.2011
Сообщений: 78
По умолчанию потерянная функция

Никак не могу найти,где ошибка! Вроде все работает, а вот функция по поиску цифр из заданной строки не вызывается..

#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
//Функция поиска больших символов
void big(char *line)
{
char *symbols = new char[100];
int count1 = 0;

strcpy(symbols,"");
char alfa[2];
strcpy(alfa,"A");
do
{
strcat(symbols,alfa);
alfa[0]++;
}
while(strstr(alfa,"Z")==NULL);
while(*line!='\0')
{
line=line+strcspn(line,symbols);
count1=count1+strspn(line,symbols);
line=line+strspn(line,symbols);
}
cout<<" Found big letters : "<<count1<<"\n";
cout<<"\n\n";
}
//Функция поиска маленьких символов
void small(char *line)
{
char *symbols = new char[100];
int count2 = 0;

strcpy(symbols,"");
char beta[2];
strcpy(beta,"a");
do
{
strcat(symbols,beta);
beta[0]++;
}
while(strstr(beta,"z")==NULL);
while(*line!='\0')
{
line=line+strcspn(line,symbols);
count2=count2+strspn(line,symbols);
line=line+strspn(line,symbols);
}
cout<<" Found small letters : "<<count2<<"\n";
}
//функция поиска цифр
void figure(char *line)

{
char *symbols = new *char[50];
int count3=0;
strcpy (symbols, "0123456789");

while (line !='\0')
{
if (strpbrk (line,symbols)!=NULL)
{
line=line+strcspn(line,symbols);
count3+=strspn(line,symbols);
line+=strspn(line,symbols);
}

cout<<" Found figures : "<<count3<<"\n";
}
cout<<"\n\n";
}

//функция для повторения символов
char *double_size(char *line)
{
char *res = new char [100];
char *result_pos;
result_pos = res;
char *r = line;

for( r = line; *r != '\0'
{
*result_pos = *r;
result_pos++;

*result_pos = *r;
result_pos++;
r++;
res='\0';
cout << " The double symbol size is : " << res << "\n\n";
}

}

void main()
{
char *line = new char [100];
cout<<" Please,enter the line :\n>";
cout<<"\n\n";
gets(line);
big(line);
small(line);
figure(line);
double_size(line);
}
Alexander1205 вне форума Ответить с цитированием
Старый 07.04.2011, 00:59   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

ух жесть. вроде все работает, говоришь?

Код:
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
//Функция поиска больших символов
void big(char *line)
{
char *symbols = new char[100];
int count1 = 0;

strcpy(symbols,"");
char alfa[2];
strcpy(alfa,"A");
do
{
strcat(symbols,alfa);
alfa[0]++;
}
while(strstr(alfa,"Z")==NULL);
while(*line!='\0')
{
line=line+strcspn(line,symbols);
count1=count1+strspn(line,symbols);
line=line+strspn(line,symbols);
}
cout<<" Found big letters : "<<count1<<"\n";
cout<<"\n\n";
}
//Функция поиска маленьких символов
void small(char *line)
{
char *symbols = new char[100];
int count2 = 0;

strcpy(symbols,"");
char beta[2];
strcpy(beta,"a");
do
{
strcat(symbols,beta);
beta[0]++;
}
while(strstr(beta,"z")==NULL);
while(*line!='\0')
{
line=line+strcspn(line,symbols);
count2=count2+strspn(line,symbols);
line=line+strspn(line,symbols);
}
cout<<" Found small letters : "<<count2<<"\n";
}
//функция поиска цифр
void figure(char *line)

{
char *symbols = new *char[50];
int count3=0;
strcpy (symbols, "0123456789");

while (line !='\0')
{
if (strpbrk (line,symbols)!=NULL)
{
line=line+strcspn(line,symbols);
count3+=strspn(line,symbols);
line+=strspn(line,symbols);
}

cout<<" Found figures : "<<count3<<"\n";
}
cout<<"\n\n";
}

//функция для повторения символов
char *double_size(char *line)
{
char *res = new char [100];
char *result_pos;
result_pos = res;
char *r = line;

for( r = line; *r != '\0'
{
*result_pos = *r;
result_pos++;

*result_pos = *r;
result_pos++;
r++;
res='\0';
cout << " The double symbol size is : " << res << "\n\n";
}

}

void main()
{
char *line = new char [100];
cout<<" Please,enter the line :\n>";
cout<<"\n\n";
gets(line);
big(line);
small(line);
figure(line);
double_size(line);
}
это уже компиляться не должно.
может все таки напишешь, что надо сделать?
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 07.04.2011, 01:11   #3
Alexander1205
Пользователь
 
Аватар для Alexander1205
 
Регистрация: 22.01.2011
Сообщений: 78
По умолчанию

жесть, это точно)).Там забыл про указатель while(*line !='\0'),так должно быть..А так компилится,вроде,хоть и код кривой,согласен)).Звыняйте,я только учусь.
Alexander1205 вне форума Ответить с цитированием
Старый 07.04.2011, 17:11   #4
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

а не проще так?????
Код:
void f(char* st) {
   int i=0;
   for (i; i<strlen(st); i++)
    if (isdigit(st[i])) cout << st[i];

cout << '\n';
}
onewho вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция revaldo666 Общие вопросы C/C++ 2 09.02.2011 19:21
функция shok.92 Общие вопросы C/C++ 6 04.12.2010 12:19
функция shok.92 Помощь студентам 0 03.12.2010 18:50
Функция Lemo Помощь студентам 1 02.12.2008 00:24
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50