Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
6 / 6 / 4
Регистрация: 09.11.2011
Сообщений: 131
1

Как поменять первый символ с последним в строке используя указатели?

01.12.2017, 14:38. Показов 2159. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.

Подскажите пожалуйста, как поменять первый символ с последним в строке используя указатели?

С массивом понятно, а вот с указателями нет, объясните.

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
#include <stdio.h>
#include <string.h>
 
 
int main()
{
    // обычный обмен
    char s[] = "jump";
    char tmp = ' ';
 
    tmp = s[0];
    s[0] = s[strlen(s) - 1];
    s[strlen(s) - 1] = tmp;
 
    printf("%s\n", s);
 
 
    // обмен с указателями
    char *str = "hair";
    int len = strlen(str);
    printf("len = %d\n", strlen(str));
    char *p = str;
 
    printf("p = %p\n", p);
 
    p += len - 1;
 
    // test
    printf("p = %p; p = %c\n", p, *p);
    printf("str = %p; str = %c\n", str, *str);
 
    char *t = str;
    *str = *p;
    str = p;
    *str = *t;
 
    str += len;
    *str = '\0';
 
 
    return 0;
}
Спасибо за ваше время.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2017, 14:38
Ответы с готовыми решениями:

Поменять половины массива следующим образом: первый элемент поменять с последним, второй с предпоследним и т.д.
Дан одномерный массив А, состоящий из 2n элементов. Поменять его половины следующим образом: первый...

Поменять местами первый положительный элемент с последним отрицательным
вот задача, дан массив 100 целых чисел,надо поменять первое положительное с последим отрицательным....

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

Поменть в каждой строке матрицы первый элемент с последним
Подскажите пожалуйста, как в двухмерном массиве, заданном рандомно числами n(строки) и m(столбцы),...

3
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
01.12.2017, 17:24 2
Лучший ответ Сообщение было отмечено gnuvse как решение

Решение

gnuvse,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
char str[] = "Hello" ;
 
int main()
{
    printf("%s\n", str);
    char tmp = *(str + strlen(str) - 1);
    *(str + strlen(str) - 1) = *str;
    *str = tmp;
    printf("%s\n", str);
    system("pause");
    return 0;
}
Добавлено через 27 минут
gnuvse, строку заданную так
C++
1
    char *str = "hair";
модифицировать нельзя
1
6 / 6 / 4
Регистрация: 09.11.2011
Сообщений: 131
01.12.2017, 17:58  [ТС] 3
Спасибо. А почему нельзя модифицировать ?
0
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
01.12.2017, 18:01 4
gnuvse, потому что при таком объявлении
C++
1
 char *str = "hair";
создается безымянный массив в read-only memory и указатель str на нее.
1
01.12.2017, 18:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2017, 18:01
Помогаю со студенческими работами здесь

Поменять местами первый элемент массива с последним. Замену произвести через макрофункцию
Ввести в память машины массив размером N. Поменять местами первый элемент с последним. Замену...

В двумерном массиве L (M,N) первый элемент поменять с последним и найти сумму отрицательных элементов
Здравствуйте. Помогите справиться с задачей. В двумерном массиве L (M,N) первый элемент...

Поменять местами первый и последний положительный элементы(указатели)
Си. Задание заключается в том, чтобы максимально много использовать в коде указатели. (без malloc()...

Поменять строки местами, используя указатели
Доброго времени суток! Такое дело: имеется двумерный массив char (массив строк в общем-то)....


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

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