cau jsem zacatecnik a potreboval bych pomoc s vynechavanim mezer.....jak nahradit více mezer pouze jedinou??
Fórum › C / C++
Mezery v C
rika se tomu stavovy automat...
zalezi na tom jak presne to chces delat... jestli jen neco nacitat a zobrazovat na obrazovku uz bez mezer.. nebo odstranit v retezci..
moznosti je hodne..
Ako písal KIIV. KOnečný stavový automat (finite state machine). Nadefinuješ si premennú state kde si uchováš stavy true == medzera, false == slovo. Potom okontroluješ načítaný znak a ak je to medzera tak priradíš premennej state stav, že si v medzere a načítaš ďalší znak kým nebudeš v slove. Tažko sa to takto vysvetľuje, ale google + konečný automat ti poradí ;-)
ale toto mu asi doslo, ale mozno nevie ako to urobit. napr.:
char oldtext = ???;
int oldlength = ???;
char* newtext = new char[ oldlength ];
int currentlast = 0;
for( int i = 0; i < oldlength; i++ )
{
bool vynechat = ...;
if( ! vynechat )
{
newtext[currentlast++] = oldtext[i];
}
}
newtext = (char*)realloc( newtext, currentlast * sizeof( char ) );
aj ja som len zaciatocnik cize ak mam chybu a mi ju poviete budem len radTak ja jsem mezery pred a v text vyresil takto... jen se neumim zbavit mezery na konci radku :(
while ((c = getc(stdin)) != EOF){
if (z == 0 && w == 0){
if (isspace(c)){
w++;
}
else{
putc(c, stdout);
z++;
}
}
else{
if (w != 0){
if (isspace(c)){
}
else{
putc(c, stdout);
w = 0;
z++;
}
}
else{
if (isspace(c)){
putc(c, stdout);
w++;
}
else{
putc(c, stdout);
}
}
}
}
char newtext = new char[15];
...
newtext = (char*)realloc( newtext, currentlast * sizeof( char ) );
Miesanie operatoru new s c++ a c funkcii malloc, realloc a free nieje dobry napad, pretoze operator new nemusi byt implementovany pomocou volania funkcie malloc.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
<ul><li> bez mezery — založil Figa
Validita - mezery a input — založil tommmyy
Mezery mezi obrázky — založil juiCZe
Problem u jmen obsahujici mezery — založil boomsek
Mezery mezi sloupci v matici — založil vasek.t
Moderátoři diskuze