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

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

Войти
Регистрация
Восстановить пароль
 
PlatiumGold
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 12
#1

Робота с строками в С++ - C++

13.03.2010, 22:43. Просмотров 959. Ответов 19
Метки нет (Все метки)

Есть строка символов, і ее нузно развернуть, от код, подскажите, потому что выдает ошибку


C++
1
2
3
4
5
6
7
8
9
10
char*str1;
cout<<"\nvvedit 1\n";
cin>>str1;
int i2=strlen(str1);
cout<<i2;
 
for (int i = i2; i>=0; i--)
{
cout<<str1[i];
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2010, 22:43     Робота с строками в С++
Посмотрите здесь:

Робота со строками в с++ 3.1 C++
C++ Лабораторная робота!
Робота со строками C++
перемещение робота C++
C++ Дипломна робота
робота с текстом C++
C++ Робота из символьными строками
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
13.03.2010, 22:56     Робота с строками в С++ #2
Что за ошыбка???
Посмотри здесь

Инвентирование строки
Day
1152 / 957 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
13.03.2010, 23:01     Робота с строками в С++ #3
PlatiumGold, надо for (int i = i2-1; i>=0; i--)
Нумерация массивов в Си (и ++) начинается с 0
smithy69
17 / 16 / 1
Регистрация: 06.11.2009
Сообщений: 167
13.03.2010, 23:02     Робота с строками в С++ #4
C++
1
2
3
4
5
6
7
8
9
10
char*str1;
cout<<"\nvvedit 1\n";
cin>>str1;
int i2=strlen(str1);
cout<<i2;
 
for (int i = i2-1; i>=0; i--)
{
cout<<str1[i];
}
CyBOSSeR
Эксперт C++
2298 / 1668 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
13.03.2010, 23:13     Робота с строками в С++ #5
PlatiumGold, приведенный тобою код не разворачивает строку, а просто печатает ее наоборот.
Поправленный вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
char* str1;
cout<<"\nvvedit 1\n";
cin>>str1;
int i2=strlen(str1);
cout<<i2;
 
for (int i = 0; i < i2 / 2; i++){
  char tmp = str1[i];
  str1[i] = str1[i2 - i - 1];
  str1[i2 - i - 1] = tmp;
}
 
cout << str1 << endl;
PlatiumGold
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 12
13.03.2010, 23:24  [ТС]     Робота с строками в С++ #6
вот какая ошибка
Робота с строками в С++
CyBOSSeR
Эксперт C++
2298 / 1668 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
13.03.2010, 23:36     Робота с строками в С++ #7
PlatiumGold, вот код:
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
#include <iostream>
#include <cstring>
 
int main()
{
  const int  max_lenght = 256;
        char string[max_lenght];
 
 
  std::cout << "Enter string: ";
  std::cin.getline(string, max_lenght);
 
  int lenght = static_cast<int>(std::strlen(string));
 
  for (int i = 0; i < lenght / 2; ++i){
    char tmp               = string[i];
    string[i]              = string[lenght - i - 1];
    string[lenght - i - 1] = tmp;
  }
 
  std::cout << string << std::endl;
 
  return 0;
}
MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
13.03.2010, 23:38     Робота с строками в С++ #8
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream.h>
void main()
{
char*str1;
cout<<"\nvvedit 1\n";
cin>>str1;
int i2=strlen(str1);
for (int i = i2-1; i>=0; i--)
{
cout<<str1[i];
}
getch();
}
PlatiumGold
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 12
13.03.2010, 23:58  [ТС]     Робота с строками в С++ #9
а это первый вариан, в нем все работает прекрасно, однако нужно char. И если забрать string, выдает ошибку


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
#include <iostream.h>
#include <string.h>
#include <conio.h>
 
main()
{
 string str;
 cout<<"Input data:\n";
 cin>>str;
 
 int len=str.length()-1;
   for (int i = len; i>=0; i--)
     {
       cout<<str[i];
     }
 
     char*str1;
     cout<<"\nInput (char) data:\n";
     cin>>str1;
     int i2=strlen(str1);
     cout<<"Lenght = "<<i2<<"\n";
 
        for (int i = i2; i>=0; i--)
         {
           cout<<str1[i];
         }
 
   getch();
}
CyBOSSeR
Эксперт C++
2298 / 1668 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
14.03.2010, 00:11     Робота с строками в С++ #10
PlatiumGold,
1. Вместо cin>>str поставь getline(cin, str);.
2. int len=str.length()-1 - здесь не надо вычитать единицу.
PlatiumGold
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 12
14.03.2010, 00:21  [ТС]     Робота с строками в С++ #11
я уже два часа с этим вожусь, и никак, постоянно одну и ту же ошибку выдает
MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
14.03.2010, 00:35     Робота с строками в С++ #12
В чем компилируете?
PlatiumGold
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 12
14.03.2010, 00:42  [ТС]     Робота с строками в С++ #13
c++, Builder консольный додаток
MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
14.03.2010, 00:44     Робота с строками в С++ #14
Я компилировал в turbo c++, все работает!!!!
CyBOSSeR
Эксперт C++
2298 / 1668 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
14.03.2010, 00:45     Робота с строками в С++ #15
Цитата Сообщение от PlatiumGold Посмотреть сообщение
я уже два часа с этим вожусь, и никак, постоянно одну и ту же ошибку выдает
PlatiumGold, если ты вместо подобных фраз будешь конкретно указывать какие ошибки вызникают, то дело пойдет быстрее.
PlatiumGold
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 12
14.03.2010, 00:58  [ТС]     Робота с строками в С++ #16
вот текст

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
#include <string.h>
#include <conio.h>
 
main()
{
 
char*str1;
cout<<"\nInput (char) data:\n";
cin>>str1;
int i2=strlen(str1);
cout<<"Lenght = "<<i2<<"\n";
 
for (int i = i2; i>=0; i--)
{
cout<<str1[i];
}
 
getch();
}
а вот ошибка, какая появляется при введение даних
Вложение 23991
CyBOSSeR
Эксперт C++
2298 / 1668 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
14.03.2010, 01:07     Робота с строками в С++ #17
PlatiumGold, проверь
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
#include <string.h>
#include <conio.h>
 
main()
{
 
char str1[260];
cout<<"\nInput (char) data:\n";
cin>>str1;
int i2=strlen(str1);
cout<<"Lenght = "<<i2<<"\n";
 
for (int i = i2; i>=0; i--)
{
cout<<str1[i];
}
 
getch();
}
outoftime
║XLR8║
506 / 428 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
14.03.2010, 10:34     Робота с строками в С++ #18
C++
1
2
3
4
5
6
7
#include <algorithm>
#include <string>
#define ALL(a) a.begin(), a.end()
//--------------
string s;
//--------------
reverse(ALL(s));
PlatiumGold
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 12
14.03.2010, 12:12  [ТС]     Робота с строками в С++ #19
Всем большое спасибо!!!!!!!!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2010, 13:05     Робота с строками в С++
Еще ссылки по теме:

C++ Робота со строками. (заменить сокращения на полный текст)
C++ Робота с файлами и строками
C++ Робота со строками. Удалить символы в строке
Робота на 5 C++
C++ Робота со списками

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

Или воспользуйтесь поиском по форуму:
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
14.03.2010, 13:05     Робота с строками в С++ #20
C
1
2
3
char str[20];
std::cin>>str;
std::cout<<strrev(str);
Yandex
Объявления
14.03.2010, 13:05     Робота с строками в С++
Ответ Создать тему
Опции темы

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