Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 12
1

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

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

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


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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2010, 22:43
Ответы с готовыми решениями:

Робота со строками
Помогите пожалуйста очень нужно Пользователь создает три строки. B первой строке выбросить все...

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

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

Робота со строками
Помогите с лабораторной вот задание: Дано предложение. Вывести на экран: а) его слова,...

19
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
13.03.2010, 22:56 2
Что за ошыбка???
Посмотри здесь

Инвентирование строки
0
Day
1179 / 989 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
13.03.2010, 23:01 3
PlatiumGold, надо for (int i = i2-1; i>=0; i--)
Нумерация массивов в Си (и ++) начинается с 0
0
18 / 17 / 7
Регистрация: 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
Эксперт С++
2347 / 1720 / 148
Регистрация: 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
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 12
13.03.2010, 23:24  [ТС] 6
вот какая ошибка
Робота с строками в С++
0
Эксперт С++
2347 / 1720 / 148
Регистрация: 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
899 / 793 / 186
Регистрация: 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
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
Эксперт С++
2347 / 1720 / 148
Регистрация: 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
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 12
14.03.2010, 00:21  [ТС] 11
я уже два часа с этим вожусь, и никак, постоянно одну и ту же ошибку выдает
0
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
14.03.2010, 00:35 12
В чем компилируете?
0
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 12
14.03.2010, 00:42  [ТС] 13
c++, Builder консольный додаток
0
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
14.03.2010, 00:44 14
Я компилировал в turbo c++, все работает!!!!
0
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
14.03.2010, 00:45 15
Цитата Сообщение от PlatiumGold Посмотреть сообщение
я уже два часа с этим вожусь, и никак, постоянно одну и ту же ошибку выдает
PlatiumGold, если ты вместо подобных фраз будешь конкретно указывать какие ошибки вызникают, то дело пойдет быстрее.
0
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
0
Эксперт С++
2347 / 1720 / 148
Регистрация: 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();
}
0
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
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));
0
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 12
14.03.2010, 12:12  [ТС] 19
Всем большое спасибо!!!!!!!!!!
0
159 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 636
14.03.2010, 13:05 20
C
1
2
3
char str[20];
std::cin>>str;
std::cout<<strrev(str);
0
14.03.2010, 13:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2010, 13:05
Помогаю со студенческими работами здесь

Робота со строками
Реализуйте метод, который принимает на вход строку и возвращает сумму цифр, которые были найдены в...

Робота со строками
С клавиатуры вводится строка. Составить программу, которая подсчитывает количество слов в тексте,...

Робота из символьными строками
За індивідуальним завданням створити функцію для обробки символьних рядків. За зразок брати...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru