Форум — Development Помогите разделить строку... 0 0 Есть строка формата "blabla nlanla". Как разделить ее на две части(по разные стороны пробела) и присвоить их двум переменным? Ссылка
{ char* s="asdasdsa asdasasd" char* n=s; while (*++n!=' '); *(n++)=0; } s-исходная строка s и n - две строки в результате. :) gena2x ★★★ (28.01.05 21:56:06 MSK) Показать ответы Ссылка
Ответ на: комментарий от gena2x 28.01.05 21:56:06 MSK Извиняюсь, что сразу не сказал: мне на shell надо... :-( anonymous (28.01.05 22:13:36 MSK) Ссылка
#!/bin/sh a="bla bla"; a1=`echo $a | awk '{ print $1 }'` a2=`echo $a | awk '{ print $2 }'` anonymous (28.01.05 23:16:38 MSK) Ссылка
a="bla bla" set $a first_chunk="$1" second_chunk="$2" rincewind (28.01.05 23:49:50 MSK) Показать ответы Ссылка
Ответ на: комментарий от rincewind 28.01.05 23:49:50 MSK >> rincewind Никак не пойму, почему этот пример работает... %-) Спасибо! anonymous (29.01.05 00:14:42 MSK) Показать ответ Ссылка
Ответ на: комментарий от rincewind 28.01.05 23:49:50 MSK Еще вариант: BLAH="blah1 blah2"; for i in $BLAH; do echo $i; done Die-Hard ★★★★★ (29.01.05 00:18:40 MSK) Ссылка
Ответ на: комментарий от anonymous 29.01.05 00:14:42 MSK > Никак не пойму, почему этот пример работает... %-) man bash: Positional parameters are assigned from the shell's arguments when it is invoked, and may be reassigned using the set builtin command. Die-Hard ★★★★★ (29.01.05 00:20:02 MSK) Показать ответ Ссылка
Ответ на: комментарий от Die-Hard 29.01.05 00:20:02 MSK Дак надо на shell или на bash? Если на bash, то там куча способов, можно: a="blabla nlanla" b1=${a%% *} b2=${a#* } mky ★★★★★ (29.01.05 14:54:21 MSK) Ссылка
Ответ на: комментарий от gena2x 28.01.05 21:56:06 MSK <{ > char* s="asdasdsa asdasasd" > char* n=s; > while (*++n!=' '); < *(n++)=0; >} >s-исходная строка >s и n - две строки в результате. >:) >gena2x (*) (28.01.2005 21:56:06) А если изменяем s,то и n указывает не на то , что надо. Садись два! kitov ★★★ (29.01.05 16:43:20 MSK) Ссылка