空字符串

超、凢脫俗 2022-11-20 13:00 261阅读 0赞

空字符串

1. 空字符串

字符串常量的书写方式是用一对双引号包围一串字符,如下所示:

  1. Hello
  2. \aWarning!\a
  3. Line 1\nLine2
  4. “”

字符串常量 (不像字符常量) 可以是空的。即使是空字符串,依然存在作为终止符的 NUL 宇节。

  1. literal lɪtərəl]:adj. 文字的,逐字的,无夸张的
  2. string [strɪŋ]:n. 线,弦,细绳,一串,一行

2. '\0'

  1. //============================================================================
  2. // Name : '\0'
  3. // Author : Yongqiang Cheng
  4. // Version : Version 1.0.0
  5. // Copyright : Copyright (c) 2019 Yongqiang Cheng
  6. // Description : Hello World in C++, Ansi-style
  7. //============================================================================
  8. #include <stdio.h>
  9. #include <string.h>
  10. int main(int argc, char **argv)
  11. {
  12. char *str_1 = "yong";
  13. char *str_2 = "qiang";
  14. char *str_3 = "";
  15. int len_str1 = 0;
  16. int len_str2 = 0;
  17. int len_str3 = 0;
  18. len_str1 = strlen(str_1);
  19. len_str2 = strlen(str_2);
  20. len_str3 = strlen(str_3);
  21. printf("len_str1 = %d\n", len_str1);
  22. printf("len_str2 = %d\n", len_str2);
  23. printf("len_str3 = %d\n", len_str3);
  24. printf("%s\n", str_1);
  25. printf("%s\n", str_2);
  26. printf("%s\n", str_3);
  27. if ('\0' == *str_3)
  28. {
  29. printf("yongqiang!\n");
  30. }
  31. return 0;
  32. }
  33. len_str1 = 4
  34. len_str2 = 5
  35. len_str3 = 0
  36. yong
  37. qiang
  38. yongqiang!

3. #include <string.h>

  1. //============================================================================
  2. // Name : '\0'
  3. // Author : Yongqiang Cheng
  4. // Version : Version 1.0.0
  5. // Copyright : Copyright (c) 2019 Yongqiang Cheng
  6. // Description : Hello World in C++, Ansi-style
  7. //============================================================================
  8. #include <stdio.h>
  9. int main(int argc, char **argv)
  10. {
  11. char *str_1 = "yong";
  12. char *str_2 = "qiang";
  13. char *str_3 = "";
  14. int len_str1 = 0;
  15. int len_str2 = 0;
  16. int len_str3 = 0;
  17. len_str1 = strlen(str_1);
  18. len_str2 = strlen(str_2);
  19. len_str3 = strlen(str_3);
  20. printf("len_str1 = %d\n", len_str1);
  21. printf("len_str2 = %d\n", len_str2);
  22. printf("len_str3 = %d\n", len_str3);
  23. printf("%s\n", str_1);
  24. printf("%s\n", str_2);
  25. printf("%s\n", str_3);
  26. if ('\0' == *str_3)
  27. {
  28. printf("yongqiang!\n");
  29. }
  30. return 0;
  31. }
  32. 09:02:07 **** Build of configuration Debug for project yongqiang_example ****
  33. make all
  34. Building file: ../src/yongqiang.c
  35. Invoking: GCC C Compiler
  36. gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/yongqiang.d" -MT"src/yongqiang.o" -o "src/yongqiang.o" "../src/yongqiang.c"
  37. ../src/yongqiang.c: In function main’:
  38. ../src/yongqiang.c:21:13: warning: implicit declaration of function strlen [-Wimplicit-function-declaration]
  39. len_str1 = strlen(str_1);
  40. ^
  41. ../src/yongqiang.c:21:13: warning: incompatible implicit declaration of built-in function strlen
  42. ../src/yongqiang.c:21:13: note: include ‘<string.h>’ or provide a declaration of strlen
  43. Finished building: ../src/yongqiang.c
  44. Building target: yongqiang_example
  45. Invoking: GCC C Linker
  46. gcc -o "yongqiang_example" ./src/yongqiang.o
  47. Finished building target: yongqiang_example
  48. 09:02:08 Build Finished (took 515ms)
  49. //============================================================================
  50. // Name : '\0'
  51. // Author : Yongqiang Cheng
  52. // Version : Version 1.0.0
  53. // Copyright : Copyright (c) 2019 Yongqiang Cheng
  54. // Description : Hello World in C++, Ansi-style
  55. //============================================================================
  56. #include <stdio.h>
  57. #include <string.h>
  58. int main(int argc, char **argv)
  59. {
  60. char *str_1 = "yong";
  61. char *str_2 = "qiang";
  62. char *str_3 = "";
  63. int len_str1 = 0;
  64. int len_str2 = 0;
  65. int len_str3 = 0;
  66. len_str1 = strlen(str_1);
  67. len_str2 = strlen(str_2);
  68. len_str3 = strlen(str_3);
  69. printf("len_str1 = %d\n", len_str1);
  70. printf("len_str2 = %d\n", len_str2);
  71. printf("len_str3 = %d\n", len_str3);
  72. printf("%s\n", str_1);
  73. printf("%s\n", str_2);
  74. printf("%s\n", str_3);
  75. if ('\0' == *str_3)
  76. {
  77. printf("yongqiang!\n");
  78. }
  79. return 0;
  80. }
  81. len_str1 = 4
  82. len_str2 = 5
  83. len_str3 = 0
  84. yong
  85. qiang
  86. yongqiang!

发表评论

表情:
评论列表 (有 0 条评论,261人围观)

还没有评论,来说两句吧...

相关阅读

    相关 字符串

    空字符串 1. 空字符串 字符串常量的书写方式是用一对双引号包围一串字符,如下所示: “Hello” “\aWarning!\a” “L

    相关 java判断字符串

    Java空字符串与null的区别: 1、类型 null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ; ""表示的