本文共 1237 字,大约阅读时间需要 4 分钟。
在C语言中,printf函数会遇到\0终止符时停止打印。"\0"代表ASCII中的空字符(编号0)。需要注意的是,未初始化的数组元素默认值为0,因此如果不明确赋值,字符串末尾可能会有\0。
例如:
char arr[10] = {'h', 'e', 'l', 'l', 'o'};// 这里只赋了5个字符,后面5个元素默认为0 而:
char arr2[] = "hello";// 这里会自动在末尾添加一个`\0`,字符串长度为6
strcpy函数(通常用于结构体中包含字符串的情况)。= "字符串"赋值数组,除非使用strcpy。例如:
char arr[10];strcpy(arr, "wang");
"字符串" 会自动终止于\0,而数组字符串则需要手动终止。char str3[5] = {'a', 'b', 'c'};// 后面没有`\0`,打印时会一直输出到数组末尾 sizeof("字符串")会包含终止符\0,因此长度比字符串实际字符数多1。sizeof("hello world") = 12(包括`\0`) 例如:
char str[12] = "hello world";int i = 0;while (str[i]) { putchar(str[i]); i++;} scanf函数读取字符串到数组。printf函数输出字符串。例如:
char str[10] = {0};scanf("%s", str); 例如:
char *p = str; // str是一个可读写的数组scanf("%s", p); *p或p[i]访问字符。例如:
char *p = str;while (*p) { putchar(*p); p++;} \0)。例如:
char str1[100] = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'}; scanf函数读取字符串到数组时,需确保数组大小足够。例如:
char str[10] = {0};scanf("%s", str); 转载地址:http://nwrfk.baihongyu.com/