在 C 语言中,字符串实际上是使用 null 字符 ‘\0’ 终止的一维字符数组。
(一)下面是一个定义字符串的例子。由于在数组的末尾存储了空字符,所以字符数组的大小比单词 “Hello” 的字符数多一个。
char str[ ] = {'H', 'e', 'l', 'l', 'o', '\0'};
但是在算字符串的长度时,最后的空字符‘\0’不算在内。
验证程序:
#include <stdio.h>
#include <string.h>
int main ()
{
char str[] = {'H', 'e', 'l', 'l', 'o', '\0'};
printf("string1: %s\n", str);
int len1 = sizeof(str) /sizeof(char);
int len2 = strlen(str);
printf("The size of array is %d\n", len1);
printf("The length of string1 is %d\n", len2);
return 0;
}
运行结果:
string1: Hello
The size of array is 6
The length of string1 is 5
以下是 C/C++ 中定义的字符串的内存表示:
(二)还可以把字符串的定义写为char str[] = “Hello”;
#include <stdio.h>
#include <string.h>
int main ()
{
char str[] = "Hello";
printf("string1: %s\n", str);
int len1 = sizeof(str) /sizeof(char);
int len2 = strlen(str);
printf("The size of array is %d\n", len1);
printf("The length of string1 is %d\n", len2);
return 0;
}
运行结果:
string1: Hello
The size of array is 6
The length of string1 is 5
可见结果是完全一样的。
更多内容请关注微信公众号