亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C 语言字符串:空终止字符数组工作原理

字符串实为以空字符 '\0' 结尾的一维字符数组。因此空终止字符串包含组成字符串的字符,后跟一个空字符。

下面声明初始化创建包含 "Hello" 的字符串。为在数组末尾容纳空字符,字符数组大小比单词 "Hello" 字符数多 1。

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

遵循数组初始化规则可写作:

 char greeting[] = "Hello"; 

上述字符串在 C/C++ 中的内存表示:

C 语言字符串:空终止字符数组工作原理

实际上不必在字符串常量末尾手动放置空字符。C 编译器初始化数组时自动在末尾添加 '\0'。尝试打印上述字符串:

Live Demo

 #include <stdio.h> int main () { char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; printf("Greeting message: %s\n", greeting ); return 0; } 

编译执行输出:

 Greeting message: Hello 

C 支持广泛操作空终止字符串的函数:

序号函数及用途
1

strcpy(s1, s2);

复制字符串 s2 到 s1。

2

strcat(s1, s2);

将字符串 s2 连接到 s1 末尾。

3

strlen(s1);

返回字符串 s1 长度。

4

strcmp(s1, s2);

s1==s2 返回 0;s1<s2 返回负值;s1>s2 返回正值。

5

strchr(s1, ch);

返回字符 ch 在字符串 s1 中首次出现的指针。

6

strstr(s1, s2);

返回字符串 s2 在 s1 中首次出现的指针。

下例使用上述部分函数:

Live Demo

 #include <stdio.h> #include <string.h> int main () { char str1[12] = "Hello"; char str2[12] = "World"; char str3[12]; int len ; /* copy str1 into str3 */ strcpy(str3, str1); printf("strcpy( str3, str1) : %s\n", str3 ); /* concatenates str1 and str2 */ strcat( str1, str2); printf("strcat( str1, str2): %s\n", str1 ); /* total lenghth of str1 after concatenation */ len = strlen(str1); printf("strlen(str1) : %d\n", len ); return 0; } 

编译执行输出:

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

C语言

  1. 掌握 C# 字符串:基础、操作与进阶技巧完全指南
  2. C++ 字符串函数实战:strcpy、strcat、strlen、strcmp 详解与示例
  3. C 语言字符串完全指南:声明、输入输出与库函数详解
  4. VHDL 字符串列表创建:最佳实践与示例
  5. Python 字符串操作完全指南:替换、连接、分割、反转、大小写转换
  6. Python str.count() 完全指南:统计字符与子串出现次数实战
  7. 精通 Java 字符串:创建、方法与最佳实践
  8. 精通 Java 枚举字符串表示:默认行为、toString 重写与进阶模式
  9. Java String.charAt() 详解:语法、返回类型、异常与实战示例
  10. 精通 Java String.endsWith():检查字符串后缀(示例)
  11. Java Strings 类:掌握字符串创建与操作
  12. Java 8 概览:函数式编程、流式 API 与日期时间新特性