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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
katka-_-
Сообщений: n/a
#1

Работа с рядками - C++

02.04.2009, 01:57. Просмотров 1988. Ответов 3
Метки нет (Все метки)

Помогите пожалуйста сделать такое задание :
Нада програма которая:
- копирует рядок S в S1 N раз
- отделяет первое слово с рядка S
- сравнивает S и S1 c игнорированием отменностей в регистрах.
- определяет тип рядка (Буквы, Десятковые числа, Двоичные, Шестнадцатеричные)
- выводит количество слов с рядка S
- Значения S, S1 и N вводит пользователь

Стандартными функциями пользоваться нельзя

язык программирования С++ Builder
очень нужно срочно, очень прошу, ребята помогите ! =*
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2009, 01:57     Работа с рядками
Посмотрите здесь:

Работа с рядками - C++
Дан текст. Групы символов, розделеные пропусками которые не содержат пропусков всередині себя, будем называть словами словами.Посчитать ,...

Работа с рядками. [ЯЗЫК C] - C++
Задание: Задав с клавиатуры последовательность символов, реализовать её обработку, как указано в варианте. Начальные данные задать...

Работа с русскими рядками - C++
Добрый день, в общем есть код: int main() { setlocale(LC_ALL, "Rus"); char in_string; // строковый массив для ввода ...

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

Работа с рядками и текстом - Pascal
Дано символьный рядок. Заменить все "!" запятыми, если воны есьб, кроме первого и вывести результат

Создание и тестирование классов Java. Работа с массивами и рядками - Java SE
Спроектировать и реализовать два класса в соответствии с индивидуального задания. В первом из классов должен быть описан массив элементов...

прога с рядками..... - Pascal
символы в слове делит на какое-то число и миняет их местами з символами другого слова,деленного на тоже число... например..... даны...

Реализовать линии между рядками текста - HTML, CSS
как лучше реализовать такие линии между текстом? Я в принципе знаю и про верхнее подчеркивание и про нижнее, но беда в том чтоб тут над...

Применение библиотечных функций для работы c символами и символьными рядками - C (СИ)
В символьной строке вывести предпоследнее слово. Предложение: Мама мыла раму Предпоследнее слово: мыла

Работа - проведение обучающих семинаров по C#. Работа по выходным дням ( сб-вс - 32 часа). От 30 000р. - Предложения работодателей
Обязанности - проведение обучающих семинаров по C# Базовый (начальный уровень). Опыт преподавания не обязателен, главное чтобы вы не...

Работа с Меню. Сохранение, печать, создать новый. Работа с рисованием - Visual C++
В общем сабж. Делается программа, которая должная Сохранять, печатать и очищать поле (создать новый/очистка). Также хочу спросить как...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
02.04.2009, 08:14     Работа с рядками #2
- копирует рядок S в S1 N раз
Код
    int i;

    for (i = 0; i < N; i++)
        strcat(s1, s);
- отделяет первое слово с рядка S
Код
    char tmp[100];

    strcpy(tmp, s);
    sscanf(tmp, "%*s%s", s);
- сравнивает S и S1 c игнорированием отменностей в регистрах.
Код
#include <ctype.h>

/* CompareIgnoreCaseLine:  сравнивает строки l1 и l2 без учёта регистра*/
int CompareIgnoreCaseLine(const char *l1, const char *l2)
{
    while (*l1 && *l2 && tolower(*l1) == tolower(*l2))
        l1++, l2++;
    if (*l1 == '\0' && *l2 == '\0')
        return 0;
    return tolower(*l1)-tolower(*l2);    
}

    if (CompareIgnoreCaseLine(s, s1) == 0)
        printf("strings are equal\n");
со стандартными функциями
katka-_-
Сообщений: n/a
05.04.2009, 17:40     Работа с рядками #3
мне уже помогли кому будет нада вот:
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#include <conio.h>
#include<iostream>
#include<iomanip>
using namespace std;
 
char strokaS[80];
char strokaS1[1024];
 
union uTypes
{
int i;
double d;
char c;
};
/////////////////////////////////////////////
//Определяем тип строки
/////////////////////////////////////////////
const char * CheckType(const char * szString)
{
uTypes u;
char cCanary;
if (sscanf(szString, "%d%c", &u, &cCanary) == 1) { return "int"; }
if (sscanf(szString, "%f%c", &u, &cCanary) == 1) { return "double"; }
if (sscanf(szString, "%c%c", &u, &cCanary) == 1) { return "char"; }
 
return "string";
}
 
 
/////////////////////////////////////////////
//Преобразует букозяблики в нормальные русские символы
/////////////////////////////////////////////
char* cyr(char* s)
{
unsigned char* p=s;
  while (*p)
  {
    if (*p==184)
    *p+=57;
  else
  {
    if (*p==168)
    *p+=72;
  else
  {
  if (*p>=192&&*p<=239)
    *p-=64;
  else
  {
  if (*p>=240&&*p<=255)
    *p-=16;
  }
  }
  }
   p++;
  }
 
return s;
}
 
/////////////////////////////////////////////
//Сравнивает 2 строки на их похожесть
/////////////////////////////////////////////
int CompareIgnoreCaseLine(const char *l1, const char *l2)
{
    while (*l1 && *l2 && tolower(*l1) == tolower(*l2))
        l1++, l2++;
 
    if (*l1 == '\0' && *l2 == '\0') return 0;
 
    return tolower(*l1)-tolower(*l2);
}
/////////////////////////////////////////////
//
/////////////////////////////////////////////
 
int main(int argc, char* argv[])
{
  char *string;
  int kol=0;
  int k,m=0;
 
  cout << cyr("Введите рядок S: ");
  cin.getline(strokaS,80); //80 это длина текста
 
  cout << cyr("Введите строку S1: ");
  cin.getline(strokaS1,80);
 
  cout << cyr("Введите число копий S: ");
  cin>> kol;
  cin.clear();
 
////////////////////////////////////////////////////
//Копируем в S1 - S kol раз
////////////////////////////////////////////////////
  for (int i = 0; i < kol; i++)
  {
   strcat(strokaS1, strokaS);
  }
 
 cout << "------" << endl;
 cout << cyr("Новое S1= ") << strokaS1 << endl;
 cout << "------" << endl;
////////////////////////////////////////////////////
//Выделяем первое слово из S
////////////////////////////////////////////////////
 string = strchr(strokaS,' ');
 
 if(string)
 {
  strncpy(string,strokaS,string-strokaS);
  cout << cyr("Первое слово S= ") << string << endl;
 }
 else
 {
  cout << cyr("Первое слово S= ") << strokaS << endl;
 }
////////////////////////////////////////////////////
//Количество слов в S
////////////////////////////////////////////////////
 
m=1; //так как всяко в строке уже есть какие то символы
 
for (int i = 0; i < strlen(strokaS); i++)
{
if (strokaS[i]==32)
  {
    k=1;
  }
  else
  {
  if (k==1) {m++; k=0;}
  }
}
 cout << cyr("Всего слов в S= ") << m << endl;
 
////////////////////////////////////////////////////
//Сравниваем S1 и S
////////////////////////////////////////////////////
 if (CompareIgnoreCaseLine(strokaS, strokaS1) == 0)
       cout << cyr("S и S1 одинаковые")<< endl;
       else
       cout << cyr("S и S1 разные")<< endl;
////////////////////////////////////////////////////
//Тип рядка S
////////////////////////////////////////////////////
cout << cyr("Тип рядка S: ")<<CheckType(strokaS)<< endl;
 
 
  getch() ;
        return 0;
}
//---------------------------------------------------------------------------
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
06.04.2009, 01:25     Работа с рядками #4
Код
    if (strokaS[i] == 32)
        k = 1;
    else if (k == 1) {
        m++;
        k = 0;
    }
в курсе, что пара пробелов если будет идти, один посчитается как слово ?
Yandex
Объявления
06.04.2009, 01:25     Работа с рядками
Ответ Создать тему
Опции темы

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