Comment comparer des chaînes en langage C
Méthodes de comparaison : 1. bcmp(), compare les n premiers octets d'une chaîne pour voir s'ils sont égaux ; 2. strcmp(), compare les chaînes en respectant la casse ; 3. strcmp(), pas la taille ; -sensible Chaîne de comparaison écrite ; 4. strncmp() ou strnicmp(), comparaison sensible à la casse des n premiers caractères de la chaîne.
L'environnement d'exploitation de ce tutoriel : système Windows 7, version c99, ordinateur Dell G3.
Utilisez bcmp() - comparez les n premiers octets de mémoire (chaîne) pour voir s'ils sont égaux
Le prototype est :
int bcmp(const void *s1, const void * s2, int n);
[Paramètres] s1, s2 sont les deux éléments de mémoire (ou deux chaînes) qui doivent être comparés, et n est la longueur à comparer.
[Valeur de retour] Si les n premiers octets de s1 et s2 sont égaux ou n est égal à 0, alors renvoyez 0, sinon renvoyez une valeur non-0.
La fonction bcmp() ne vérifie pas NULL.
En fait, bcmp() et memcmp() ont la même fonction, utilisée pour comparer si les n premiers octets du bloc mémoire sont égaux, mais les deux paramètres s1 et s2 sont des pointeurs, et étrangement situés dans string.h, il peut également être utilisé pour comparer des chaînes.
Exemple :
#include <stdio.h> #include <string.h> int main () { char *s1 = "Golden Global View"; char *s2 = "Golden Global View"; if( !bcmp(s1, s2, 7) ) printf("s1 equal to s2 in first 7 bytes"); else printf("s1 not equal to s2 in first 7 bytes"); return 0; }
Utilisez strcmp() - Comparez les chaînes (sensible à la casse)
Le prototype est :
int strcmp(const char *s1, const char *s2);
[Paramètre] s1, s2 sont les deux chaînes qui doivent être comparées.
La comparaison des tailles de chaînes est déterminée par l'ordre dans la table des codes ASCII, et cet ordre est également la valeur des caractères. strcmp() soustrait d'abord la première valeur de caractère de s1 de la première valeur de caractère de s2. Si la différence est de 0, il continuera à comparer le caractère suivant. Si la différence n'est pas de 0, la différence sera renvoyée. Par exemple, comparer les chaînes « Ac » et « ba » renverra la différence (-33) entre les caractères « A » (65) et « b » (98).
[Valeur de retour] Si les chaînes des paramètres s1 et s2 sont les mêmes, 0 sera renvoyé. Si s1 est supérieur à s2, une valeur supérieure à 0 est renvoyée. Si s1 est inférieur à s2, une valeur inférieure à 0 est renvoyée.
Remarque : strcmp() effectue des comparaisons en termes binaires et ne prend pas en compte les caractères multi-octets ou à octets larges.
Exemple :
#include <string.h> main(){ char *a = "aBcDeF"; char *b = "AbCdEf"; char *c = "aacdef"; char *d = "aBcDeF"; printf("strcmp(a, b) : %d\n", strcmp(a, b)); printf("strcmp(a, c) : %d\n", strcmp(a, c)); printf("strcmp(a, d) : %d\n", strcmp(a, d)); }
Sortie :
strcmp(a, b) : 32 strcmp(a, c) :-31 strcmp(a, d) : 0
Utiliser strictmp() - Comparer les chaînes (insensible à la casse)
Le le prototype est :
int strcmp(char *s1, char *s2);
[Description du paramètre] s1, s2 sont les deux chaînes qui doivent être comparées.
La comparaison des tailles de chaînes est déterminée par l'ordre dans la table de codes ASCII, et cet ordre est également la valeur des caractères. strictmp() soustrait d'abord la première valeur de caractère de s1 de la première valeur de caractère de s2. Si la différence est de 0, il continuera à comparer le caractère suivant. Si la différence n'est pas de 0, la différence sera renvoyée. Par exemple, comparer les chaînes « Ac » et « ba » renverra la différence (-33) entre les caractères « A » (65) et « b » (98).
[Valeur de retour] Si les chaînes des paramètres s1 et s2 sont les mêmes, 0 sera renvoyé. Si s1 est supérieur à s2, une valeur supérieure à 0 est renvoyée. Si s1 est inférieur à s2, une valeur inférieure à 0 est renvoyée.
Remarque : strictmp() est unique à Windows. La fonction avec la même fonction sous Linux est strcasecmp(), qui est incluse dans le fichier d'en-tête strings.h.
Une autre fonction qui compare les chaînes sans respecter la casse est strcmpi(). strcmpi() est la définition macro de strictmp(), mais cette fonction n'est pas réellement fournie.
Exemple : Comparez la taille de deux chaînes.
#include<stdio.h> #include<string.h> int main(void) { /*定义两个字符串*/ char* s1 = "http://see.xidian.edu.cn/cpp/u/biaozhunku/"; char* s2 = "http://see.xidian.edu.cn/cpp/shujujiegou/"; /*比较字符串(不分大小写)*/ int result = stricmp(s1,s2); // 也可以改成strcmpi() if(result>0) { printf("Result: s1 > s2"); } else if(result<0) { printf("Result: s1 < s2"); } else if(result == 0) { printf("Result: s1 = s2"); } getchar();/*等待用户输入个字符,然后退出*/ return 0; }
Sortie :
Result: s1 > s2
Utilisez strncmp() - comparez les n premiers caractères de la chaîne (sensible à la casse)
Son le prototype est :
int strncmp ( const char * str1, const char * str2, size_t n );
[Paramètres] str1, str2 sont les deux chaînes qui doivent être comparées, et n est le nombre de caractères à comparer.
La comparaison des tailles de chaînes est déterminée par l'ordre dans la table des codes ASCII, et cet ordre est également la valeur des caractères. strncmp() soustrait d'abord la première valeur de caractère de s2 de la première valeur de caractère de s1. Si la différence est de 0, il continuera à comparer le caractère suivant jusqu'à la marque de fin de caractère.
另外一个不区分大小写比较字符串前n个字符的函数是strncmpi(),strncmpi()是strnicmp()的宏定义,实际未提供此函数。
示例:对6组字符串进行比较。
#include<stdio.h> #include<string.h> int main(void){ char* s1 = "http://see.xidian.edu.cn/cpp/u/xitong/"; char* s2 = "HTTP://see.xidian.edu.cn/cpp/u/xitong/"; char* s3 = "abc"; char* s4 = "abcxyz"; char* s5 = "123456"; char* s6 = "123"; printf("s1-s2=%d\n", strnicmp(s1, s2, 20)); // 是否区分大小写 printf("s3-s4=%d\n", strnicmp(s3, s4, 100)); // s3的长度小于s4 printf("s5-s6=%d\n", strnicmp(s5, s6, 100)); // s5的长度大于s6 return 0; }
VC6.0下运行结果:
s1-s2=0 s3-s4=-1 s5-s6=1
GCC下运行结果:
s1-s2=0 s3-s4=-1 s5-s6=1
相关推荐:《C语言视频教程》
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

C Structure des données du langage: La représentation des données de l'arborescence et du graphique est une structure de données hiérarchique composée de nœuds. Chaque nœud contient un élément de données et un pointeur vers ses nœuds enfants. L'arbre binaire est un type spécial d'arbre. Chaque nœud a au plus deux nœuds enfants. Les données représentent StrustReenode {intdata; structTreenode * gauche; structureReode * droite;}; L'opération crée une arborescence d'arborescence arborescence (prédécision, ordre dans l'ordre et ordre ultérieur) Le nœud d'insertion de l'arborescence des arbres de recherche de nœud Graph est une collection de structures de données, où les éléments sont des sommets, et ils peuvent être connectés ensemble via des bords avec des données droites ou peu nombreuses représentant des voisins.

La fonction ReadDir dans le système Debian est un appel système utilisé pour lire le contenu des répertoires et est souvent utilisé dans la programmation C. Cet article expliquera comment intégrer ReadDir avec d'autres outils pour améliorer sa fonctionnalité. Méthode 1: combinant d'abord le programme de langue C et le pipeline, écrivez un programme C pour appeler la fonction readdir et sortir le résultat: # include # include # include # includeIntmain (intargc, char * argv []) {dir * dir; structDirent * entrée; if (argc! = 2) {

La vérité sur les problèmes de fonctionnement des fichiers: l'ouverture des fichiers a échoué: les autorisations insuffisantes, les mauvais chemins de mauvais et les fichiers occupés. L'écriture de données a échoué: le tampon est plein, le fichier n'est pas écrivatif et l'espace disque est insuffisant. Autres FAQ: traversée de fichiers lents, encodage de fichiers texte incorrect et erreurs de lecture de fichiers binaires.

La compatibilité ABI en C se réfère si le code binaire généré par différents compilateurs ou versions peut être compatible sans recompilation. 1. Fonction Calling Conventions, 2. Modification du nom, 3. Disposition de la table de fonction virtuelle, 4. Structure et mise en page de classe sont les principaux aspects impliqués.

C Guide de programmation multithreading Language: Création de threads: Utilisez la fonction PTHREAD_CREATE () pour spécifier l'ID de thread, les propriétés et les fonctions de thread. Synchronisation des threads: empêchez la concurrence des données via des mutex, des sémaphores et des variables conditionnelles. Cas pratique: utilisez le multi-lancement pour calculer le numéro Fibonacci, attribuer des tâches à plusieurs threads et synchroniser les résultats. Dépannage: résoudre des problèmes tels que les accidents de programme, les réponses d'arrêt de fil et les goulots d'étranglement des performances.

Comment produire un compte à rebours en C? Réponse: Utilisez des instructions de boucle. Étapes: 1. Définissez la variable N et stockez le numéro de compte à rebours à la sortie; 2. Utilisez la boucle while pour imprimer en continu n jusqu'à ce que n soit inférieur à 1; 3. Dans le corps de la boucle, imprimez la valeur de n; 4. À la fin de la boucle, soustrayez N par 1 pour sortir le prochain plus petit réciproque.

CLORATION DE FICHIER DE LANGUE C: LIRE Le traitement des fichiers de fichiers est une partie cruciale de la programmation de langage C, qui permet aux programmes d'interagir avec des périphériques de stockage externes tels que les disques et les lecteurs flash. Cet article explorera comment lire des fichiers dans le langage C. Étapes pour lire un fichier pour ouvrir le fichier: utilisez la fonction fopen pour ouvrir le fichier. Cette fonction nécessite deux paramètres: nom de fichier et mode ouvert. Vérifiez si le fichier est ouvert: vérifiez si le pointeur renvoyé par la fonction FOPEN est nul. Si NULL, le fichier ne peut pas être ouvert. Lire Fichier: Utilisez la fonction Fread pour lire les données du fichier vers le tampon. Cette fonction nécessite quatre paramètres: adresse de tampon, taille de l'élément tampon, nombre d'éléments à lire et pointeur de fichier. Fermez le fichier: utilisez f

[DESCRIPTION DU RÉPERTOIRE COMMUN] DIRECTEUR / BIN STORES Fichiers exécutables (LS, CAT, MKDIR, etc.), et les commandes communes sont généralement là. / ETC stocke la gestion du système et les fichiers de configuration / Home Stores tous les fichiers utilisateur. Le répertoire racine du répertoire personnel de l'utilisateur est la base du répertoire domestique de l'utilisateur. Par exemple, le répertoire domestique de l'utilisateur d'utilisateur est / home / utilisateur. Vous pouvez utiliser ~ User pour représenter / USR pour stocker les applications système. Le répertoire plus important / USR / répertoire d'installation du logiciel d'administrateur système local local (installer les applications au niveau du système). Il s'agit du plus grand répertoire, et presque toutes les applications et fichiers à utiliser sont dans ce répertoire. / USR / X11R6 Répertoire pour stocker x fenêtre / usr / bin beaucoup
