ではC
、文字列は。で終わる文字のシーケンスとして定義されます\0
。文字列定数は通常、 `"内で表されます。たとえば、char a [10]="hello"のようになります。
2つの文字列を比較するために、で使用できるようなライブラリ関数を使用できstrcmp()
ますstring.h
。man strcmp
この関数の詳細を読むために行ってください。
#include <stdio.h>
#include <string.h>
int main()
{
char name[] = "tom";
if (strcmp(name, "tom") == 0) {
printf("name is tom! \n");
} else if (strcmp(name, "bob") == 0) {
printf("name is bob! \n");
} else {
printf("who is this?! \n");
}
return 0;
}
strcmpは、次の方法で実装できます(参照用の配列とポインターのバージョン)
int strcmp1(char a[], char b[])
{
int i=0;
while (a[i] == b[i]) {
if (a[i] == '\0')
return 0;
i++;
}
return a[i]-b[i];
}
int strcmp2(char *a, char *b)
{
while (*a == *b) {
if (*a == '\0')
return 0;
a++; b++;
}
return *a-*b;
}