19.08.2004, 12:28
|
#31
|
|
Дошкольник
Join Date: 08 2004
Location: Oxford
Age: 48
Posts: 141
Rep Power: 0
|
for(int i = 1; i < s.length(); i ++){
if(s.charAt(i - 1) == ' ' && s.charAt(i) == ' '){
s.deleteCharAt(i);
i --;
}
}
if(s.charAt(0) == ' ')s.deleteCharAt(0);
if(s.charAt(s.length() - 1) == ' ')s.deleteCharAt(s.length() - 1);
Ты уж извини, я в php не разбираюсь. А как тебе этот код?
|
|
|
|
19.08.2004, 12:33
|
#32
|
|
Грустно...
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 44
Posts: 21,717
Rep Power: 9
|
Ну скажу так, мне нравится код тут
http://forum.armkb.com/showpost.php?...37&postcount=6
a php я тоже не особо знаю - на форуме есть тэги пхп, пишешь так [пхп] в начале
[/пхп] в конце. кириллицу надо заменить на латиницу - тогда будет красивый код.
|
|
|
|
19.08.2004, 12:34
|
#33
|
|
Грустно...
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 44
Posts: 21,717
Rep Power: 9
|
Да уже получше - только микрооптимизация - сначала - надо стерь пробел в конце, потом в начале. Это сохранит 2 обращения к памяти как минимум  .
|
|
|
|
19.08.2004, 12:49
|
#34
|
|
Дошкольник
Join Date: 08 2004
Location: Oxford
Age: 48
Posts: 141
Rep Power: 0
|
Quote:
|
Originally Posted by Agregat
|
Давно не работал с STL (если это вообще STL), но по моему эта программа делает тоже, что и моя, просто используя стандартные функции. Я бы например мог тоже вместо последних двух строк написать скажем
new String(s).trim();
|
|
|
|
19.08.2004, 12:52
|
#35
|
|
Грустно...
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 44
Posts: 21,717
Rep Power: 9
|
String - неивестная мне библиотека.
А мой код - это не стл, а стандартная библиотека с++, а стл - ее часть 
Например std::string - это не стл.
|
|
|
|
19.08.2004, 12:57
|
#36
|
|
Дошкольник
Join Date: 08 2004
Location: Oxford
Age: 48
Posts: 141
Rep Power: 0
|
Да ты прав, теперь я вспомнил. Ну ладно, может до завтра сам чего нибудь придумаю.
P. S. String и StringBuffer - стандартные классы в Java.
|
|
|
|
20.08.2004, 05:36
|
#37
|
|
Ego coder
Join Date: 07 2004
Location: Yerevan, Armenia
Age: 45
Posts: 3,738
Rep Power: 5
|
a mojno boostom?
Code:
void remove_redundant_spaces(std::string &str)
{
std::string tmp;
boost::tokenizer<> tok(str);
for(boost::tokenizer<>::iterator i=tok.begin(), last=tok.end(); i!=last; tmp+=*i++ + ' ');
tmp[tmp.length()-1]='\0', str=tmp;
}
|
|
|
|
20.08.2004, 05:49
|
#38
|
|
Грустно...
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 44
Posts: 21,717
Rep Power: 9
|
Умный да?
|
|
|
|
20.08.2004, 06:06
|
#39
|
|
Ego coder
Join Date: 07 2004
Location: Yerevan, Armenia
Age: 45
Posts: 3,738
Rep Power: 5
|
да нет..пижон, да
|
|
|
|
20.08.2004, 10:14
|
#40
|
|
Дошкольник
Join Date: 08 2004
Location: Oxford
Age: 48
Posts: 141
Rep Power: 0
|
Ну тода и я попижоню:
PHP Code:
static void aggregate(String s){
StringTokenizer tok = new StringTokenizer(s);
while(tok.hasMoreTokens())
System.out.print(tok.nextToken() + (tok.hasMoreTokens() ? " " : ""));
}
|
|
|
|
28.05.2020, 21:16
|
#41
|
|
Ego coder
Join Date: 07 2004
Location: Yerevan, Armenia
Age: 45
Posts: 3,738
Rep Power: 5
|
Или же так:
PHP Code:
#include <iostream> #include <string> #include <sstream> using namespace std;
void remove_redundant_spaces(string &s) { string s1, res; stringstream ss(s); res.reserve(s.length()+1); while(ss >> s1) res+=s1+' '; res.back()='\0'; s=res; } int main() { string s = " Thee stringgg with mmany ssspacess! "; cout << s << endl; remove_redundant_spaces(s); cout << s << endl; return EXIT_SUCCESS; }
|
|
|
|
|
All times are GMT. The time now is 21:25. |
|
|