4.3 Chaînes de caractères

Les chaînes de caractères Scilab sont délimitées par les caractères apostrophe ``''' ou guillemets anglo-saxons ``"'' (qui sont équivalents). Pour insérer une apostrophe ou des guillemets, il faut les faire précéder d'un délimiteur (à nouveau ``''' ou ``"''). Les opérations de base sur les chaînes de caractères sont la concaténation, notée par l'opérateur ``+'' et la fonction length qui renvoie le nombre de caractères contenus dans une chaîne. On peut bien sur créer des matrices de chaînes de caractères et les deux opérateurs précédemment décrits deviennent alors vectoriels et les opérateurs usuels de construction de matrices par concaténation de colonnes ou de lignes sont utilisables :


\begin{sessioncmd}
\par -->S=''une chaîne avec <<'''>> ''
S =
\par une chaîne a...
...ne de la matrice \verb+S+ }
ans =
\par ! 3. 2. !
! 7. 7. !
\par\end{sessioncmd}


Tableau 3: Quelques fonctions sur les chaînes de caractères
ascii conversion entre chaîne et codes Ascii
execstr fait exécuter par l'interprète une chaîne de caractère
grep recherche de sous-chaînes dans une matrice de chaînes
part extraction de sous-chaînes
msscanf lecture formatée (C) dans un chaîne
msprintf construction d'un vecteur ou d'une chaîne par écriture formatée
strindex position d'occurrences de sous chaînes dans une chaîne
string conversion vers une chaîne de caractère
stripblanks enlève les caractères blancs initiaux et finaux
strsubst substitution de sous-chaînes
tokens découpe une chaîne
strcat concatène les éléments d'une matrice
length longueur des chaînes d'une matrice de chaîne


Dans le tableau 3, sont répertories plusieurs fonctions utiles liées à l'utilisation des chaînes de caractères. Nous les illustrons maintenant au moyen d'un exemple. On cherche ici à transformer une matrice scalaire en une chaîne de caractère permettant d'obtenir une représentation en LATEX de cette matrice. Connaître le langage LATEX n'a ici aucune importance, il s'agit, partant de la matrice A=testmatrix('magi',3), de construire la chaîne de caractère :

\[ A= \begin{array}{ccc} 8 & 1 & 6 \\ 3 & 5 & 7 \\ 4 & 9 & 2 \\ \end{array} \]


\begin{sessioncmd}
\par -->A=testmatrix('magi',3) \sleftarrow{{\normalfont un ca...
...\BS !
! !
!4 & 9 & 2 \BS\BS !
! !
!{\BS}end\{array\} \BS] !
\par\end{sessioncmd}

Les chaînes de caractères peuvent aussi être utilisées pour construire des expressions du langage Scilab que l'on peut alors faire évaluer par l'interprète au moyen de la commande execstr