• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Funkcja do "odwracania" zmiennej

Object Storage Arubacloud
0 głosów
339 wizyt
pytanie zadane 19 sierpnia 2019 w C i C++ przez Mavimix Dyskutant (8,390 p.)
Jest jakaś funkcja która "odwraca" ciąg znaków? Chodzi mi o taki efekt:

mam zmienną int x = 31415

i chcę uzyskać zmienną int x = 51413

2 odpowiedzi

0 głosów
odpowiedź 19 sierpnia 2019 przez mokrowski Mędrzec (155,460 p.)
wybrane 19 sierpnia 2019 przez Mavimix
 
Najlepsza

Masz 2 drogi:

1. Jeśli chcesz by to był typ int i w nim odwrócić cyfry reprezentujące wartość dziesiętne, to możesz tak:

#include <stdio.h>

int main(void) {
    const int value = 31415;
    int tmp = value;
    int result = 0;

    while(tmp != 0) {
        result = result * 10 + tmp % 10;
        tmp /= 10;
    }

    printf("%d -> %d\n", value, result);

    return 0;
}

2, Jeśli chcesz przetworzyć int na string (w tagach wybrałeś C), to możesz to zrobić tak:

#include <stdio.h>
#include <stddef.h>

int main(void) {
    const int x = 31415;
    char buff[32];
    size_t len_size = sprintf(buff, "%d", x);

    char * first = buff;
    char * last = buff + len_size - 1;
    while(first < last) {
        char tmp = *first;
        *first = *last;
        *last = tmp;
        ++first;
        --last;
    }

    printf("%d -> %s\n", x, buff);
    return 0;
}

Obydwa przykłady napisane elementarnie bo można je jeszcze optymalizować.

Chyba że się pomyliłeś i myślałeś o C++....

–2 głosów
odpowiedź 19 sierpnia 2019 przez Wraith Gaduła (4,370 p.)

moze uzyj funkcji 

reverse(x.begin(), x.end());

 

komentarz 19 sierpnia 2019 przez Mavimix Dyskutant (8,390 p.)
Pokazuje mi taki błąd:

Multiple markers at this line
    - request for member 'begin' in 'x', which is of non-class type
     'double'
    - request for member 'end' in 'x', which is of non-class type
     'double'
    - 'reverse' was not declared in this scope
komentarz 19 sierpnia 2019 przez Mavimix Dyskutant (8,390 p.)
Już nie ważne, zapomniałem podpiąć biblioteki. Jest tylko problem, że nie chcą się zainkludować:

Multiple markers at this line
    - algorithm: No such file or
     directory
    - Unresolved inclusion:
     <algorithm>

Multiple markers at this line
    - Unresolved inclusion:
     <vector>
    - vector: No such file or
     directory
komentarz 19 sierpnia 2019 przez Wraith Gaduła (4,370 p.)
ta juz  musisz pokombinowac z bilbliotkeami ale to juz z gorki
komentarz 19 sierpnia 2019 przez mokrowski Mędrzec (155,460 p.)

@Wraith,

A jak chcesz to odwrócić jeśli to typ int a nie np. string? W type int z całą pewnością nie znajdziesz begin() i end() i nie jest to problem z bibliotekami.

komentarz 19 sierpnia 2019 przez Wraith Gaduła (4,370 p.)
no rzutujesz sobei na string (string)X ale to chyba normalne
komentarz 19 sierpnia 2019 przez Mavimix Dyskutant (8,390 p.)
a da się int'a odwrócić?
komentarz 19 sierpnia 2019 przez Wraith Gaduła (4,370 p.)
#include <iostream>
using namespace std;
int main()
{
    int n, reversedNumber = 0, remainder;
    cout << "Enter an integer: ";
    cin >> n;
    while(n != 0)
    {
        remainder = n%10;
        reversedNumber = reversedNumber*10 + remainder;
        n /= 10;
    }
    cout << "Reversed Number = " << reversedNumber;
    return 0;
}

 

Podobne pytania

+1 głos
1 odpowiedź 118 wizyt
0 głosów
2 odpowiedzi 343 wizyt
pytanie zadane 18 grudnia 2020 w C i C++ przez pocoxo1124 Nowicjusz (120 p.)
0 głosów
2 odpowiedzi 183 wizyt

92,551 zapytań

141,399 odpowiedzi

319,531 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...