你想要指针的方法给中文插入空格打印输出,你的代码错在1、结束符号要写0或者'\0',不能写“\0”。2、一个中文是2个英文字符大小,所以每次循环指针要取2位打印。
所以上面那个指针的代码要改成:
#include <stdio.h>
int main()
{
char* p= "红橙黄绿青蓝紫"
while(*p!=0)
{
printf("%c%c ",*p,*(p+1))
printf(" ")
p+=2
}
}
字符串中的空格算一个字符。C语言规定,字符串是用
双引号
括起来的字符序列。由于空格也在字符串中(在双引号内),所以空格也算一个字符。
可以通过下面的
程序段
来验证空格算不算一个字符:
char a[]="abc efg"
printf("%d", sizeof(a)) // 输出8, 6个字符+1个空格+1个字符结束标志,sizeof函数是测试
字符数组
a所占的
内存单元
printf("%d", strlen(a)) // 输出7, 6个字符+1个空格,strlen函数是测试数组a中字符的个数