zapisanie zawartości tablicy do zmiennej

0

Witam, mam taki problem... Stworzyłem funkcję, która pobrany z klawiatury tekst przerabia na kod ASCII i wrzuca te liczby do tablicy. Chciałem następnie zawartość tej tablicy zapisać jako jedną zmienną typu int, lub nawet long, ale nie wiem jaką funkcją się za to zabrać? może ktoś coś doradzić?

Tak dla wyjaśnienia chodzi o to, żeby skleić wszystkie elementy jeden za drugim, żeby powstała jedna długa liczba i żeby zapisać to do zmiennej np. long liczba
Proszę o pomoc i z góry dzięki ;)

0

A język? Po podanych nazwach typów domyślam się, że pewnie C++, tak?

0

Oczywiście, że C++. Tak się zapędziłem, że napisać zapomniałem...

0

Jeżeli mogą być dowolne znaki to maksymalnie do long'a wpakujesz 4 znaki a do long long - 8.
Jeżeli ograniczysz się do powiedzmy 26 znaków to do long'a - 6 a do long long 13.
Więcej się nie da.

0

W takim razie trzeba by to do stringa zapisać? mógłby ktoś opisać kolejne kroki?

0

A ja się przyznam, że kompletnie nie rozumiem co właściwie chcesz osiągnąć.

Stworzyłem funkcję, która pobrany z klawiatury tekst przerabia na kod ASCII i wrzuca te liczby do tablicy.

Możesz podać kod? Bo "przerabianie na kod ASCII" nic mi nie mówi. (bo i co i po co przerabiać? przecież wczytany string składa się z serii char-ów, a te same z siebie są liczbami, więc "przerabianie" ich na liczby to robienie masła z masła.)

0

Pracuję nad programem do szyfrowania i pomyślałem, że tak trzeba by to zrobić.

0

przepraszam za double post, ale nie jestem zarejestrowany i edytować nie mogę opis programu:
Wiem, że pewnie kod poniższy wywoła w waszej psychice nieodwracalne zmiany, część z was rozwali pięścią monitor, czy coś... Jestem gotów na krytykę i rady, ale nie rzucajcie kamieniami!

#include <iostream.h>
#include <cstdio>
#include <fstream.h>
#include <conio.h>
#include <string>
#include <sstream>

using namespace std;

string text;
char slowo[80];
long szyfr[80];
int i, k, klucz, poczatek_klucza, zmienna_do_f3;
string kod_ostateczny;

//1. funkcja konwertujaca do ASCII
int znakinacyfry(char slowo[])
{
    cout << "Rozpoczynam PIERWSZA czesc programu... \n";
                  for( i = 0; i < 80 ; i++)
                  {
                       szyfr[ i ] = int(slowo[ i ]);
                       if(szyfr[ i ] == 0 ) {i = --i; break;}
                       cout << szyfr[i] << '\n';
                  }     
}

//2. funkcja dodajaco-kwadratujaca
long f_druga(long szyfr[]) {
     cout << "Rozpoczynam DRUGA czesc programu... \n";
     for( k = 0; k <= i ; k++ ){
          szyfr[k] = szyfr[k] + 3;
          szyfr[k] = szyfr[k] * szyfr[k];
          cout << "\n\n" << szyfr[k];
          }
     
}

//3. funkcja dzialajaca na ASCII pierwszej litery hasla
int f_trzecia(long szyfr[]) {
     cout << "\nRozpoczynam TRZECIA czesc programu... \n";
     klucz = zmienna_do_f3;
     klucz = (klucz  + 1) * 3;
     std::stringstream ss; 
     ss << klucz;
     poczatek_klucza = (ss.str()).size(); 
     cout << klucz << ' ' << poczatek_klucza;
}

main() {
       cin >> slowo;
       znakinacyfry(slowo);
       zmienna_do_f3 = szyfr[0];
       f_druga(szyfr);
       f_trzecia(szyfr);
       getch();
}

Zatrzymałem się na pkt. 4

  1. Pobiera jakiś wyraz
  2. Przerabia każdą literę na ASCII i wrzuca do tablicy
  3. Powiększa każdy wyraz tablicy o wartość "3" i podnosi do kwadratu
    I tu właściwie mam to co osiągnąć chciałem, teraz
  4. Operacja na kodzie ASCII odpowiadającemu pierwszej literze wyrazu,
  5. Następnie wynik ten będzie dodany na koniec tablicy
  6. złączenie tablicy w jedną zmienną, czy już sam nie wiem w co
  7. zapisanie do pliku
0

Przejrzyj to:

#include <iostream>
#include <string>
#include <vector>


int main() {
    using namespace std;
    
    // 1)
    string wyraz;
    cin >> wyraz;
    
    // 2) - ale to nie jest "konwersja na tablicę wartości ASCII" - potrzebna tylko 
    // dlatego, że zamierzasz potęgować, a w char się wyniki tych potęg nie mieszczą
    vector<unsigned long> liczby(wyraz.begin(), wyraz.end());
    
    // 3)
    for (vector<unsigned long>::iterator i = liczby.begin(); i != liczby.end(); ++i) {
        *i += 3; // o wartość "3"? czyli o wartość 3 
        // *i += '3'; // czy '3' ?
        *i *= *i;
        
    }
    // pod liczby[0] masz pierwszą liczbę
    
    
    return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1