c语言字符串是以空字符('\0')结尾的字符数组,通常表示为双引号内的一系列字符。当字符串中间写0时,只是将数字0添加到字符串中
例如,假设有一个包含字符串“hello world”的字符数组
char str[] = "hello world";
如果将数字0插入到字符串中间
str[5] = 0;
则字符串现在为“hello”,因为在位置5上的字符现在是空字符,所以它之后的字符将不再被视为该字符串的一部分。但是,原始字符数组中的所有字符仍然存在,只是在将其视为字符串时,从空字符位置截断。
在C语言中,字符串被视为字符数组,并使用指向字符的指针来访问该数组中的字符。当遇到空字符时,字符串处理函数将停止处理并将其视为字符串的结尾。
char str[] = "hello\0world";
在位置5处插入了空字符,这意味着在该位置后面的字符(即“world”)不再是该字符串的一部分。如果您要访问“world”这个单词,使用指向字符数组的指针来获取它
char *ptr = &str[6]; // 指向“w”的指针
while (*ptr != '\0') {
printf("%c", *ptr);
ptr++;
}