Position actuelle: Accueil> Derniers articles> Comment la fonction STRCSPN calcule-t-elle la position du jeu de caractères dans une chaîne? Explication détaillée

Comment la fonction STRCSPN calcule-t-elle la position du jeu de caractères dans une chaîne? Explication détaillée

gitbox 2025-08-25

Dans PHP, STRCSPN est une fonction utilisée pour calculer la position du premier caractère dans une chaîne qui n'est pas dans un jeu de caractères spécifié. Son nom complet est "String Complément Span", ce qui signifie à partir du début de la chaîne, en trouvant le premier caractère qui n'appartient pas au jeu de caractères donné et renvoyant la position d'index du caractère. Cette fonction est souvent utilisée pour le traitement des chaînes, surtout lorsque vous devez trouver le premier emplacement d'un caractère dans la chaîne.

Syntaxe de la fonction STRCSPN

 <span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-title function_ invoke__">strcspn</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$charlist</span></span><span> [, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$start</span></span><span> = </span><span><span class="hljs-number">0</span></span><span> [, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$length</span></span><span> = </span><span><span class="hljs-literal">NULL</span></span><span> ]])
</span></span>
  • $ Haystack : la chaîne cible à rechercher.

  • $ charlist : définit le jeu de caractères à trouver, c'est-à-dire une chaîne contenant plusieurs caractères.

  • $ start : facultatif, spécifiez l'emplacement pour commencer la recherche, la valeur par défaut est 0.

  • $ Longueur : Facultatif, spécifiant la longueur maximale à vérifier lors de la recherche, la valeur par défaut est nul, indiquant la position de $ début à la fin de la chaîne.

Comment comprendre StrcSpn ?

La fonction STRCSPN commence par la chaîne de Haystack donnée et recherche le premier caractère qui n'appartient pas au jeu de caractères dans $ charlist . Il renvoie ensuite la position de ce caractère. Cette position est la position d'index du caractère dans la chaîne (à partir de 0).

Par exemple, supposons que vous ayez une chaîne ABCDEF et que le jeu de caractères est ABC , alors STRCSPN renverra la position du premier caractère qui n'appartient pas au jeu de caractères ABC , c'est-à-dire la position d'index de D dans la chaîne 3.

Exemple de code

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Échantillonnage</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"abcdef"</span></span><span>;
</span><span><span class="hljs-comment">// Définir les jeux de caractères</span></span><span>
</span><span><span class="hljs-variable">$charlist</span></span><span> = </span><span><span class="hljs-string">"abc"</span></span><span>;

</span><span><span class="hljs-comment">// utiliser strcspn Fonctions trouver le premier emplacement qui n&#39;appartient pas au jeu de caractères</span></span><span>
</span><span><span class="hljs-variable">$position</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strcspn</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$charlist</span></span><span>);

</span><span><span class="hljs-comment">// Résultat de sortie</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"La première position de caractère qui n&#39;est pas dans le jeu de caractères est: "</span></span><span> . </span><span><span class="hljs-variable">$position</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Sortir:

 <span><span><span class="hljs-section">La première position de caractère qui n&#39;est pas dans le jeu de caractères est: 3</span></span><span>
</span></span>

Dans cet exemple, la chaîne "ABCDEF" commence à partir de A , B et C jusqu'à ce que le premier caractère D soit rencontré qui n'est pas dans le jeu de caractères ABC , donc la position retournée est 3.

Application pratique de StracSpn

  1. Vérifiez si les caractères appartiennent à un jeu de caractères : Pendant le traitement ou la vérification des données, STRCSPN peut aider à déterminer si les données d'entrée contient des caractères illégaux ou des caractères indésirables. Par exemple, vérifiez si le nom d'utilisateur ne contient que des lettres ou des chiffres.

  2. Extraire les sous-chaînes : si vous devez extraire tous les caractères avant un caractère spécifique d'une chaîne, vous pouvez combiner les fonctions STRCSPN et substr pour l'implémenter. Par exemple, si vous souhaitez extraire tous les caractères avant le premier numéro:

     <span><span><span class="hljs-meta">&lt;?php</span></span><span>
    </span><span><span class="hljs-variable">$input</span></span><span> = </span><span><span class="hljs-string">"abc123xyz"</span></span><span>;
    </span><span><span class="hljs-variable">$position</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strcspn</span></span><span>(</span><span><span class="hljs-variable">$input</span></span><span>, </span><span><span class="hljs-string">'0123456789'</span></span><span>);
    </span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$input</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$position</span></span><span>);
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>; </span><span><span class="hljs-comment">// Sortir "abc"</span></span><span>
    </span><span><span class="hljs-meta">?&gt;</span></span><span>
    </span></span>

    Ce code renvoie "ABC" car il extrait tous les caractères avant le numéro 1 .

  3. Gestion des jeux de caractères spéciaux : StrcSpn est également très utile si vous avez besoin de trouver des caractères spéciaux ou des caractères d'espace blanc dans une chaîne. Par exemple, découvrez la position du premier espace ou de la ponctuation dans une chaîne:

     <span><span><span class="hljs-meta">&lt;?php</span></span><span>
    </span><span><span class="hljs-variable">$input</span></span><span> = </span><span><span class="hljs-string">"hello, world!"</span></span><span>;
    </span><span><span class="hljs-variable">$position</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strcspn</span></span><span>(</span><span><span class="hljs-variable">$input</span></span><span>, </span><span><span class="hljs-string">' ,.!'</span></span><span>);
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Le premier non-espace、virgule、Période、La position de caractère de la marque d&#39;exclamation est: "</span></span><span> . </span><span><span class="hljs-variable">$position</span></span><span>;
    </span><span><span class="hljs-meta">?&gt;</span></span><span>
    </span></span>

    Ce code peut être utilisé pour filtrer certaines marques de ponctuation courantes et renvoyer le contenu réel de la chaîne.

en conclusion

STRCSPN est une puissante fonction de traitement de chaîne PHP qui peut aider les développeurs à localiser avec précision les positions de caractère dans des chaînes qui n'appartiennent pas à un jeu de caractères donné. Dans le développement réel, en particulier dans des scénarios tels que la vérification et l'analyse des chaînes, STRCSPN est un outil très pratique qui peut être utilisé pour optimiser l'efficacité et la lisibilité du code. La maîtrise de cette fonction peut rendre les opérations de chaîne plus flexibles et efficaces.