[dywang@deyu zzz]$ vim array4.c
[dywang@deyu zzz]$ cat array4.c
#include <stdio.h>
#include <string.h>
main () {
char str1[11]="Hello", str2[11], str3[11];
printf("Enter a string: ");
scanf("%s", str2);
printf("str1 = %s\n", str1 );
printf("str2 = %s\n", str2 );
strcpy(str3,str1);
printf("strcmp(str1,str3) = %d\n", strcmp(str1,str3) );
printf("strcpy(str3,str1), str3 = %s\n", str3 );
printf("strcat(str3,str2) = %s\n", strcat(str3,str2) );
printf("str3 = %s\n", str3 );
printf("strlen(str2) = %d\n", strlen(str2) );
printf("strcmp(str1,str2) = %d\n", strcmp(str1,str2) );
printf("strchr(str1, 'e') = %d\n", strchr(str1, 'e') );
printf("strstr(str1, str2) = %d\n", strstr(str1, str2) );
}
[dywang@deyu zzz]$ gcc -o array4 array4.c
str="-ABC",strlen(str2) 回傳 str2 長度 4,strcmp(str1,str2) 回傳 27,表示 str2 比 str1 大 (ASCII 值),strstr(str1,str2) 回傳 0,表示在 str1 找不到字串 str2。
[dywang@deyu zzz]$ ./array4 Enter a string: -ABC str1 = Hello str2 = -ABC strcpy(str3,str1), str3 = Hello strcmp(str1,str3) = 0 strcat(str3,str2) = Hello-ABC str3 = Hello-ABC strlen(str2) = 4 strcmp(str1,str2) = 27 strchr(str1, 'e') = 1641270433 strstr(str1, str2) = 0
str="Hello",strlen(str2) 回傳 str2 長度 5,strcmp(str1,str2) 回傳 0,表示 str2 與 str1 一樣 (ASCII 值),strstr(str1,str2) 回傳位址 935582496 是 str1 中 H 的位址,而 strchr(str1,'e') 回傳 935582497 剛好是 H 的下一個位址。
[dywang@deyu zzz]$ ./array4 Enter a string: Hello str1 = Hello str2 = Hello strcpy(str3,str1), str3 = Hello strcmp(str1,str3) = 0 strcat(str3,str2) = HelloHello str3 = HelloHello strlen(str2) = 5 strcmp(str1,str2) = 0 strchr(str1, 'e') = 935582497 strstr(str1, str2) = 935582496