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

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

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

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

13.03.2010, 22:43. Просмотров 974. Ответов 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];
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2010, 22:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Робота с строками в С++ (C++):

Робота со строками - C++
Ввести с клавиатуры массив строк символов с данными о клиентах банка: фамилия и проч., № счета, сумма вклада, дата. Отсортировать строки по...

Робота со строками в с++ 3.1 - C++
Помогите разрешить такую задачу, пожалуйста: Определить длину строки, которую нужно ввести с клавиатуры. Определить длину строки за...

Робота с файлами и строками - C++
Написать программу, которая считывает текст из файла и выводит в другой файл и на экран только те предложения, которые не содержат ком...

Робота из символьными строками - C++
За індивідуальним завданням створити функцію для обробки символьних рядків. За зразок брати бібліотечні функції обробки рядків мови C, але...

Робота со строками. Удалить символы в строке - C++
Удалите в строке все символы &quot;!&quot;. Помогите с кодом

Робота со строками. (заменить сокращения на полный текст) - C++
как решить задачу ; Задан русскоязычный текст,в котором есть сокращения (т.к , др. , и.т.п.).Нужно заменить эти сокращения на полный...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
13.03.2010, 22:56 #2
Что за ошыбка???
Посмотри здесь

Инвентирование строки
0
Day
1158 / 963 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
13.03.2010, 23:01 #3
PlatiumGold, надо for (int i = i2-1; i>=0; i--)
Нумерация массивов в Си (и ++) начинается с 0
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];
}
0
CyBOSSeR
Эксперт C++
2303 / 1673 / 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;
1
PlatiumGold
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 12
13.03.2010, 23:24  [ТС] #6
вот какая ошибка
Робота с строками в С++
0
CyBOSSeR
Эксперт C++
2303 / 1673 / 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;
}
0
MILAN
885 / 779 / 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();
}
0
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();
}
0
CyBOSSeR
Эксперт C++
2303 / 1673 / 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 - здесь не надо вычитать единицу.
0
PlatiumGold
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 12
14.03.2010, 00:21  [ТС] #11
я уже два часа с этим вожусь, и никак, постоянно одну и ту же ошибку выдает
0
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
14.03.2010, 00:35 #12
В чем компилируете?
0
PlatiumGold
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 12
14.03.2010, 00:42  [ТС] #13
c++, Builder консольный додаток
0
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
14.03.2010, 00:44 #14
Я компилировал в turbo c++, все работает!!!!
0
CyBOSSeR
Эксперт C++
2303 / 1673 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
14.03.2010, 00:45 #15
Цитата Сообщение от PlatiumGold Посмотреть сообщение
я уже два часа с этим вожусь, и никак, постоянно одну и ту же ошибку выдает
PlatiumGold, если ты вместо подобных фраз будешь конкретно указывать какие ошибки вызникают, то дело пойдет быстрее.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2010, 00:45
Привет! Вот еще темы с ответами:

Робота на 5 - C++
Пропоную зробити найкращу презентацію

Лабораторная робота! - C++
1)Написати програму, яка обчислює середню (за тиждень) температуру повітря. Початкові дані повинні вводитися під час роботи програми. Вид...

Робота со списками - C++
Даны 2 списка, содержащих фамилии студентов 2-х групп. Перевести L студентов с 1-й группы в другую. Число пересчете-К.

робота с графикой - C++
Робота с графикой. что надо написать что бы можно было нарисовать рисунок пример солнышко


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.03.2010, 00:45
Ответ Создать тему
Опции темы

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