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

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

Войти
Регистрация
Восстановить пароль
 
gmb124
8 / 4 / 1
Регистрация: 11.04.2012
Сообщений: 54
#1

Переворот строки - C++

21.07.2012, 22:14. Просмотров 832. Ответов 5
Метки нет (Все метки)

Почему при использовании указателя ошибка, а при использование массива всё нормально?

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
void RevStr(char *str){
    char *start,*end;
    char t;
 
    start = str;
    end = &str[Length(str)-1];
 
    while(end > start){
        t = *start;
        *start = *end;
        *end = t;
 
        start++;
        end--;
    }
}
 
void main(){
   //     char *str="qwd"; ошибка
        char str[]="qwd";  
    
    RevStr(str);
    cout << str;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.07.2012, 22:14     Переворот строки
Посмотрите здесь:

Переворот строки. Необработанное исключение. Нарушения прав доступа - C++
void turn(char c, int step, int size) { if(step &lt; size&gt;&gt;1) { char temp = c; char temp2 = c; c =...

Переворот масива - C++
Здравствуйте. Помагите пожалучто, у меня как то криво масив переворачиваетса... #include &lt;iostream&gt; #include &lt;ctime&gt; using namespace...

Переворот слов - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;sstream&gt; int main() { std::string input; std::getline( std::cin,...

реверсивный переворот - C++
Создать 2 объекта разработанного класса. Одной из компонент класса является динамическая символьная строка. В результате выполнения...

Переворот слов - C++
Дали такие задания: Задание 1 В строке, содержащей несколько слов, разделенных пробелом, перевернуть каждое слово. Входные...

Классы в C++. Переворот дроби. - C++
Есть задачку не могу сделать помогите , нужно написать класс по такому принципу #include &lt;iostream&gt; using namespace std; class...

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

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

Переворот матрицы~изображения. - C++
Дана матрица HxW H – произвольное W – произвольное Реализовать функцию разворота матрицы “вверх ногами” или проще для понимания...

2 задания(переворот числа, счетчик) - C++
1. Как написать программу, которая выводит число в обратном порядке 2. Как сделать счетчик, который выдавал бы &quot;столько-то лет,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
21.07.2012, 22:24     Переворот строки #2
Механизмы указателей и массивов немного различаются. Указатель хранит адрес переменной, но переменной-то в данном случае нет! А массив является не только адресом, но и, собственно, контейнером.
nameless
Эксперт C++
333 / 297 / 14
Регистрация: 16.06.2009
Сообщений: 486
21.07.2012, 23:12     Переворот строки #3
gmb124,

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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
const char * ReverseString(const char * str) {
   size_t length = strlen(str);
   char * temp = (char*)malloc((length + 1) * sizeof(char));
   memcpy(temp, str, length + 1);
   char * p_back = temp + length - 1;
   
   for (char * p = temp; p < p_back; p++, p_back--) {
      *p ^= *p_back;
      *p_back ^= *p;
      *p ^= *p_back;
   }
   
   return temp;
}
 
int main() {
   char str[] = "reverse";
   const char * p_str = "reverse";
   
   printf("%s %s", ReverseString(str), ReverseString(p_str));
}
http://liveworkspace.org/code/9e60b2...4786662edff0cf
soon
2538 / 1303 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.07.2012, 23:14     Переворот строки #4
Цитата Сообщение от nameless Посмотреть сообщение
*p ^= *p_back;
*p_back ^= *p;
*p ^= *p_back;
Чем обычный swap не устроил?
nameless
Эксперт C++
333 / 297 / 14
Регистрация: 16.06.2009
Сообщений: 486
21.07.2012, 23:19     Переворот строки #5
Цитата Сообщение от soon Посмотреть сообщение
Чем обычный swap не устроил?
Да, так. Ничего особенного, для разнообразия, так сказать.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.07.2012, 05:46     Переворот строки #6
Цитата Сообщение от gmb124 Посмотреть сообщение
char *str="qwd"
str - указатель на строковый литерал. Попытки изменения строкового литерала
*start = *end;
приводят к ошибке.
Yandex
Объявления
22.07.2012, 05:46     Переворот строки
Ответ Создать тему
Опции темы

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