#include <iostream>
const int ArSize = 80;
char * left(const char * str, int n = 1);
int main()
{
using namespace std;
char sample[ArSize];
cout << "Zadejte retezec:\n";
cin.get(sample, ArSize);
char *ps = left(sample, 4);
cout << ps << "\n";
delete [] ps; // uvolnění starého řetězce
ps = left(sample);
cout << ps << endl;
delete [] ps; // uvolnění nového řetězce
return 0;
}
char * left(const char * str, int n)
{
if(n < 0)
n = 0;
char * p = new char[n+1];
int i;
for (i = 0; i < n ; i++)
p[i] = str[i]; // kopírování znaků
while (i <= n)
p[i++] = '\0'; // zbytek se nastaví na '\0'
return p;
}
mam dotaz k cyklu while ktery nastavuje konec retezce prazdnýmí znaky
ale nějak tomu nerozumim nebot se mi zda že prazdnými znaky nastavi začatek řetězce
mužete mi to prosím nějak vysvětlit nebo napsat nějaky jiny způsob...děkuji
Fórum › C / C++
Cyklus while
Ten cyklus nastavuje všechny znaky v řetězci p na indexech i až n na znak '\0'. Vzhledem k tomu, že se vždy i rovná tomu n, tak je ten while cyklus zbytečný a stačilo by ho nahradit
p[n] = '\0'
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 122 hostů
Moderátoři diskuze