c - 字符串终止 C/C++ char = 0

标签 c string

#include<stdio.h>
#include<string.h>

void terminateString(char *str){
    str[3] = 0;
    printf("string after termination is:%s\n",str);
}

int main(){
    char str[]="abababcdfef";
    terminateString(str);
    return 0;
}

输出:

string after termination is:aba

我们仅将索引“3”处的元素分配给 0,但为什么该索引之后的所有字符都被忽略?有人可以解释一下这种行为吗?

最佳答案

We are only assigning element at index '3' to 0, but why do all characters after that index are ignored? Can someone please explain this behavior?

以零结尾的字符串的约定是 0 字节表示字符串的结尾。因此,当 printf() 在位置 3 遇到零字节时,它会停止打印。

关于c - 字符串终止 C/C++ char = 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45604770/

相关文章:

c - 用 C 实现基本的 vtable

c - 后缀数组构造 O(N LogN) - 竞争性编程 3 Steven Halim

c - 如何用C语言解析XML标签中的值?

awk 中的字符串比较

php - 内置函数在 php 中组合重叠的字符串序列?

c - 理解 C 中的读 + 写

c++ - 在 Visual Studio、C++ 中使用 FDLIBM 库

javascript - 根据最后一次出现的 , 和 _ 分割字符串

ios - @""的替代品?

c++ - C++ 中的矩形二维字符数组