Компания ALT Linux
Опубликован: 12.03.2015 | Доступ: свободный | Студентов: 485 / 21 | Длительность: 20:55:00
Лекция 3:

Программирование

3.3 Обработка строк

В языке программирования Octave есть множество функций для работы со строками. Рассмотрим некоторые из них.

Таблица 3.2. Функции для работы со строками.
Функция Описание функции Пример использования
char(code) Возвращает символ по его коду code
	
>>> char(100)
ans = d
>>> char(80:85)
ans = PQRSTU
									
deblank(s) Формируется новая строка путём удаления пробелов в конце строки s
	
>>> deblank(’OCTAVE ’)
ans = OCTAVE
									
int2str(x) Преобразование чисел, хранящихся в массиве (матрице) x к целому типу и запись результатов в массив символов
	
>>> int2str(123.456)
ans = 123
>>> int2str([9.8 6.9])
ans = 10 7
									
findstr(str, substr) Возвращает номер позиции, начиная с которой подстрока substr входит в строку str
	
>>> Str=’Visual C++’;
>>> S=’C++’;
>>> findstr(Str,S)
ans =8
									
lower(s) Возвращает строку путём преобразования строки s к строчным буквам
	
>>> S=’QtOctave’;
>>> lower(S)
ans = qtoctave
									
mat2str(x, n) Преобразовывает числовую матрицу x в строку; если присутствует необязательный параметр n, то перед преобразованием в строку все элементы матрицы округляются до n значащих цифр в числе
	
>>> X=[7.895; -9.325]
X =
7.8950
-9.3250
>>> mat2str(X)
ans =
[7.8949999999999996;
-9.3249999999999993]
>>> mat2str(X,2)
ans = [7.9;-9.3]
									
num2str(x, n) Преобразовывает числовую матрицу (массив) x в массив символов, если присутствует необязательный параметр n, то перед преобразованием в строку все элементы матрицы округляются до n значащих цифр в числе.
	
>>>X=[7.89578; -9.32985];
>>>num2str(X)
ans =
7.8958
-9.3299
>>>num2str(X,2)
ans =
7.9
-9.3
>>>num2str(X,1)
ans =
8
-9
									
sprintf (format, x) Формирует строку из чисел, хранящихся в числовой переменной x в соответствии с форматом format
	
>>> x=789.65432145;
>>> sprintf(’X=%4.2e’,x)
ans = X=7.90e+02
>>> y=-654.12345678;
>>> sprintf(’Y=%7.3f’,y)
ans = Y=-654.123
									
sscanf (s, format) Функция возвращает из строки s числовое значение или массив значений в соответствии с форматом
	
>>> s=’1234.5’
s = 1234.5
>>> x=sscanf(s, ’%f’)
x = 1234.5
>>> x=sscanf(s, ’%d’)
x = 1234
									
str2double(s) Формирование числа из строки s, если это возможно
	
>>> s=’1.456e-2’;
>>> str2double(s)
ans = 0.014560
									
str2num(s) Формирование массива чисел из строки (массива символов) s
	
>>> s=’-pi 2 1.6’;
>>> str2num(s)
ans=-3.1416 2.0000 1.6000
									
strcat(s1, s2, . . . sn) Формируется строка путём объединения строк s1, s2, . . ., sn
	
>>> s1=’Octave’;
>>> s2=’Qt’;
>>> s=strcat(s2,s1)
s = QtOctave;
									
strcmp(s1, s2) Возвращает 1, если строки s1 и s2 совпадают, 0 — в противном случае
	
>>>S1=’The first ex.’;
>>>strcmp(S1,’The first’)
ans = 0
>>>S2=’The second ex.’;
>>>strcmp(S1,S2)
ans = 0
>>>strcmp(S1,’The first
ex.’)
ans = 1
									
strcmpi(s1, s2) Сравнение строк s1 и s2, не различая строчные и прописные буквы
	
>>> S1=’1-st May’;
>>> S2=’1-st may’;
>>> strcmpi(S2,S1)
ans = 1
									
strjust(s, direction) Выравнивание строки s в соответствии с направлением direct: right — выравнивание по правому краю, left — выравнивание по левому краю, center — выравнивание по центру
	
>>> S=’Pascal 7.0 ’;
>>> strjust(S,’right’)
ans = Pascal 7.0
>>> S=’ Pascal 7.0’;
>>> strjust(S,’left’)
ans = Pascal 7.0
>>> S=’ Pascal 7.0’;
>>> strjust(S,’center’)
ans = Pascal 7.0
									
strncmp(s1, s2, n) Сравнение первых n символов строк s1 и s2, возвращает 1, если первые n символов строк s1 и s2 совпадают, 0 — в противном случае
	
>>> S1=’My name is
Vasia’;
>>> S2=’My name is
Petia’;
>>> strncmp(S1,S2,10)
ans = 1
>>> strncmp(S1,S2,12)
ans = 0
									
strrep(s, subs, subsnew) Формирует новую строку из строки s путём замены подстрок subs на подстроки subsnew
	
>>> S=’07. 07. 2007’;
>>> strrep(S,’7’,’8’)
Ans =
08. 08. 2008
									
strtok(s, delimiter) Поиск первой подстроки в строке s, отделённой пробелом или символом табуляции (при отсутствии параметра delimiter) или первой подстроки, отделённой от s одним из символов, входящих в delimiter. Функция может возвращать 2 параметра: первый — найденная подстрока, второй — содержит остаток строки s после strtok
	
>>> S=’Винни-Пух и
Пятачок’;
>>> strtok(S)
ans = Винни-Пух
>>> S=’Привет, Пух!’;
>>> strtok(S)
ans = Привет,
>>> [S1,S2]=strtok(S,’,’)
S1 = Привет
S2 =, Пух!
										
upper(s) Возвращает строку s, преобразованную к прописным буквам
	
>>> S=’Octave’;
>>> upper(S)
ans = OCTAVE
									
Алексей Игнатьев
Алексей Игнатьев

Возможна ли разработка приложения на Octave с GUI?

Евгений Ветчанин
Евгений Ветчанин

Добрый день. Я самостоятельно изучил курс "Введение в Octave" и хочу получить сертификат. Что нужно сднлать для этого? Нужно ли записаться на персональное обучение с тьютором или достаточно перевести деньги?

Иван Мельников
Иван Мельников
Россия
Ольга Замятина
Ольга Замятина
Россия, Калиниград, РГУ им. И. Канта, 2009