Ĺadny brzuch
Witam,
Mam takie pytanko: jak zamienic tablice znakow na lancuch? (np, tab[3]={'a','b','c','d'} ,a lancuchma wygladac tak: lan="abcd")
mecze sie z tym od jakiegos czasu ale nie moge tego dobrze zrobic.
Jest mi to potrzebne bo chcialbym zrobic program, ktory czyta znaki z pliku, jak dojdzie do spacji albo znaku konca linii to tworzy wyraz z tych znakow a potem zapisuje te wyrazy w innym pliku jeden pod drugim
(chodzi o to ze jak jest plik tekstowy to program czyta tekst i zapisuje w innym pliku slowa tego tekstu jedno pod drugim)
z gory dzieki za odpowiedzi
pozdrowienia,
konjo
Moge podac ci program wyodrebniajaca wyrazy z bufora:
wypelnianie tablicy
#include <iosteream>
using namespace std;
int main()
{
char buffer[80]; //bufer na 80 znakow (miesci 79 znakow oraz NULL)
cout << "Wpisz lancuch znakow: ";
cin.get(buffer, 79); //pobiera do 79 znakow lub do nowej linii
cout << "oto zawartosc bufora: " << buffer endl; 11: retrn 0;
}
A teraz cos extra
uzywa argumentow linii polecenia. Musisz go odpalic z linii polecen DOS
#include <iostream>
using namespace std;
int main(int argc, char **argv)
{
cout << "Otrzymano " << argc << " argomentow.n";
for (int i=0; i<argc; i++)
cout << "argument " << i << ": " << argv[i] << endl;
return 0;
}
Jak cos to pisz
>BaR_TeK<
Language: C++/DirectX/WinAPI
IDE: MS Visual C++
cytat:konjo napisał:
Witam,
Mam takie pytanko: jak zamienic tablice znakow na lancuch? (np, tab[3]={'a','b','c','d'} ,a lancuchma wygladac tak: lan="abcd")
mecze sie z tym od jakiegos czasu ale nie moge tego dobrze zrobic.
Jest mi to potrzebne bo chcialbym zrobic program, ktory czyta znaki z pliku, jak dojdzie do spacji albo znaku konca linii to tworzy wyraz z tych znakow a potem zapisuje te wyrazy w innym pliku jeden pod drugim
(chodzi o to ze jak jest plik tekstowy to program czyta tekst i zapisuje w innym pliku slowa tego tekstu jedno pod drugim)
z gory dzieki za odpowiedzi
pozdrowienia,
konjo
Mozna zrobic to tak:
char tab[3]={'a','b','c'};
char *lan;
lan=tab;
Jak widac lan musi byc wskaznikiem.
cytat:Rom napisał:Mozna zrobic to tak:
char tab[3]={'a','b','c'};
char *lan;
lan=tab;
Jak widac lan musi byc wskaznikiem.
Nie ma konieczności tworzenia nowej zmiennej, zamiast lan spokojnie mozna uzyc tab bowiem nazwa tablicy jest wskznikiem do niej samej a konkretnie do jej pierwszego elementu :)
KoDo
GG:3857769
A tutaj jeszcze mały przykładzik. Czytanie łancuchów dowolnej długości:
#include <iostream> #include <string> using namespace std; int main(int argc, char* argv[]) { string s; while(s.compare("q")!=0) { cout << "Wpisz cokolwiek: "; s.clear(); char c; while((c=cin.get())!='n') s+=c; cout << "Wpisales: " << s << endl; } system("PAUSE"); return 0; }
KoDo
GG:3857769
Czyli wiesz już wszystko. Ale jeśli chciałbyś chodziłoby ci o takie procedury w Delphi to daj znać.
Nie można mylić tego co uważa się za rzeczywistość, z tym co nią jest.
dzieki za odpowiedzi
pobawie sie z tym troche...
pozdrowienia,
konjo
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Mam takie pytanko: jak zamienic tablice znakow na lancuch? (np, tab[3]={'a','b','c','d'} ,a lancuchma wygladac tak: lan="abcd")
mecze sie z tym od jakiegos czasu ale nie moge tego dobrze zrobic.
Jest mi to potrzebne bo chcialbym zrobic program, ktory czyta znaki z pliku, jak dojdzie do spacji albo znaku konca linii to tworzy wyraz z tych znakow a potem zapisuje te wyrazy w innym pliku jeden pod drugim
(chodzi o to ze jak jest plik tekstowy to program czyta tekst i zapisuje w innym pliku slowa tego tekstu jedno pod drugim)
z gory dzieki za odpowiedzi
pozdrowienia,
konjo
Moge podac ci program wyodrebniajaca wyrazy z bufora:
wypelnianie tablicy
#include <iosteream>
using namespace std;
int main()
{
char buffer[80]; //bufer na 80 znakow (miesci 79 znakow oraz NULL)
cout << "Wpisz lancuch znakow: ";
cin.get(buffer, 79); //pobiera do 79 znakow lub do nowej linii
cout << "oto zawartosc bufora: " << buffer endl; 11: retrn 0;
}
A teraz cos extra
uzywa argumentow linii polecenia. Musisz go odpalic z linii polecen DOS
#include <iostream>
using namespace std;
int main(int argc, char **argv)
{
cout << "Otrzymano " << argc << " argomentow.n";
for (int i=0; i<argc; i++)
cout << "argument " << i << ": " << argv[i] << endl;
return 0;
}
Jak cos to pisz
>BaR_TeK<
Language: C++/DirectX/WinAPI
IDE: MS Visual C++
cytat:konjo napisał:
Witam,
Mam takie pytanko: jak zamienic tablice znakow na lancuch? (np, tab[3]={'a','b','c','d'} ,a lancuchma wygladac tak: lan="abcd")
mecze sie z tym od jakiegos czasu ale nie moge tego dobrze zrobic.
Jest mi to potrzebne bo chcialbym zrobic program, ktory czyta znaki z pliku, jak dojdzie do spacji albo znaku konca linii to tworzy wyraz z tych znakow a potem zapisuje te wyrazy w innym pliku jeden pod drugim
(chodzi o to ze jak jest plik tekstowy to program czyta tekst i zapisuje w innym pliku slowa tego tekstu jedno pod drugim)
z gory dzieki za odpowiedzi
pozdrowienia,
konjo
Mozna zrobic to tak:
char tab[3]={'a','b','c'};
char *lan;
lan=tab;
Jak widac lan musi byc wskaznikiem.
cytat:Rom napisał:Mozna zrobic to tak:
char tab[3]={'a','b','c'};
char *lan;
lan=tab;
Jak widac lan musi byc wskaznikiem.
Nie ma konieczności tworzenia nowej zmiennej, zamiast lan spokojnie mozna uzyc tab bowiem nazwa tablicy jest wskznikiem do niej samej a konkretnie do jej pierwszego elementu :)
KoDo
GG:3857769
A tutaj jeszcze mały przykładzik. Czytanie łancuchów dowolnej długości:
#include <iostream> #include <string> using namespace std; int main(int argc, char* argv[]) { string s; while(s.compare("q")!=0) { cout << "Wpisz cokolwiek: "; s.clear(); char c; while((c=cin.get())!='n') s+=c; cout << "Wpisales: " << s << endl; } system("PAUSE"); return 0; }
KoDo
GG:3857769
Czyli wiesz już wszystko. Ale jeśli chciałbyś chodziłoby ci o takie procedury w Delphi to daj znać.
Nie można mylić tego co uważa się za rzeczywistość, z tym co nią jest.
dzieki za odpowiedzi
pobawie sie z tym troche...
pozdrowienia,
konjo