Latest web development tutorials

C string

Dans le langage C, les chaînes utilisent réellement le caractèrenul '\ 0' de tableau à une dimension de caractères terminée.Par conséquent, une chaîne terminée par zéro qui contient les caractères de la chaîne.

Les instructions suivantes créent et initialiser un "Bonjour" string. Depuis la fin de la matrice pour stocker le caractère nul, de sorte que la taille de la matrice de caractères que le mot "Bonjour" est supérieur à un nombre de caractères.

char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

règles tableau d'initialisation Sur la base, vous pouvez écrire la déclaration ci-dessus la déclaration suivante:

char greeting[] = "Hello";

Ce qui suit est une chaîne de C / C ++ défini dans la mémoire, il a dit:

C / C ++ représentation de chaîne

En fait, vous n'avez pas besoin le caractèrenulà la fin de la constante de chaîne. Lorsque le réseau d'initialisation du compilateur C, automatiquement '\ 0' à la fin de la chaîne. Essayons la chaîne de sortie ci-dessus:

#include <stdio.h>

int main ()
{
   char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

   printf("Greeting message: %s\n", greeting );

   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants:

Greeting message: Hello

Il existe un grand nombre de fonctions C pour manipuler des chaînes:

序号函数 & 目的
1strcpy(s1, s2);
复制字符串 s2 到字符串 s1。
2strcat(s1, s2);
连接字符串 s2 到字符串 s1 的末尾。
3strlen(s1);
返回字符串 s1 的长度。
4strcmp(s1, s2);
如果 s1 和 s2 是相同的,则返回 0;如果 s1<s2 则返回小于 0;如果 s1>s2 则返回大于 0。
5strchr(s1, ch);
返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。
6strstr(s1, s2);
返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。

L'exemple suivant utilise certaines des fonctions ci-dessus:

#include <stdio.h>
#include <string.h>

int main ()
{
   char str1[12] = "Hello";
   char str2[12] = "World";
   char str3[12];
   int  len ;

   /* 复制 str1 到 str3 */
   strcpy(str3, str1);
   printf("strcpy( str3, str1) :  %s\n", str3 );

   /* 连接 str1 和 str2 */
   strcat( str1, str2);
   printf("strcat( str1, str2):   %s\n", str1 );

   /* 连接后,str1 的总长度 */
   len = strlen(str1);
   printf("strlen(str1) :  %d\n", len );

   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants:

strcpy( str3, str1) :  Hello
strcat( str1, str2):   HelloWorld
strlen(str1) :  10

Vous pouvez trouver plus de fonctions liées à la chaîne-dans la bibliothèque standard C.