7个回答
展开全部
'\n' ——换行,一般用于输出字符串时换行,不表示本字符串结束,只是对显示格式的调整。
'\0'——字符串零,详细点说就是字符串在字符数据之后加入一个null字符,表示字符串结束,一般不需要手动添加。
详细的可以看下面一段文字:
字符串结束符
C语言对字符串做了最奇怪的事:在每个字符串的末端加上了一个零。字符串末端的零有几种名字。下面列出了一些:
Null零
二进制零
字符串结束符
ASCII零
\0
警告:
你唯独不能把字符串末端的零叫做零(zero)。C程序员给字符串末端的零起了特殊的名字,这样你就知道在字符串末端用的既不是普通的数值零也不是字符'0'。只有null零出现在字符串末端。
C语言用字符串末端的零标识所有字符串的结束。当你输入文字My name is Julie时,不需要做什么特别的事情。C程序会自动加上null零。你永远看不到null零,但它确实存在。在内存中,只有当C程序遇到null零时才知道字符串结束了。
说明:
查看附录C时,你会找到ASCII表(在第2章中讨论)。第1个条目就是null,它的ASCII数是0。往下找到ASCII 48,会看到一个0。ASCII 48是字符'0',而第1个ASCII值是null零。C语言把null零放在字符串的末端。即使字符串"I am 20"也以ASCII 0结束,它就在20的字符0后面。
线索 字符串结束符有时被称为\0(反斜杠零),这是因为可以把\0放在单引号中来表示null零。因此,'0'是字符零,而'\0'是字符串结束符。
图6-1展示了字符串"Crazy"在内存中是如何存储的。如你所见,尽管字符串只有5个字母,但它占用了6个字节(一个字节是一个存储单元)。作为字符串"Crazy"的一部分,null零也占用了一个字节。
'\0'——字符串零,详细点说就是字符串在字符数据之后加入一个null字符,表示字符串结束,一般不需要手动添加。
详细的可以看下面一段文字:
字符串结束符
C语言对字符串做了最奇怪的事:在每个字符串的末端加上了一个零。字符串末端的零有几种名字。下面列出了一些:
Null零
二进制零
字符串结束符
ASCII零
\0
警告:
你唯独不能把字符串末端的零叫做零(zero)。C程序员给字符串末端的零起了特殊的名字,这样你就知道在字符串末端用的既不是普通的数值零也不是字符'0'。只有null零出现在字符串末端。
C语言用字符串末端的零标识所有字符串的结束。当你输入文字My name is Julie时,不需要做什么特别的事情。C程序会自动加上null零。你永远看不到null零,但它确实存在。在内存中,只有当C程序遇到null零时才知道字符串结束了。
说明:
查看附录C时,你会找到ASCII表(在第2章中讨论)。第1个条目就是null,它的ASCII数是0。往下找到ASCII 48,会看到一个0。ASCII 48是字符'0',而第1个ASCII值是null零。C语言把null零放在字符串的末端。即使字符串"I am 20"也以ASCII 0结束,它就在20的字符0后面。
线索 字符串结束符有时被称为\0(反斜杠零),这是因为可以把\0放在单引号中来表示null零。因此,'0'是字符零,而'\0'是字符串结束符。
图6-1展示了字符串"Crazy"在内存中是如何存储的。如你所见,尽管字符串只有5个字母,但它占用了6个字节(一个字节是一个存储单元)。作为字符串"Crazy"的一部分,null零也占用了一个字节。
展开全部
一个字符串结束用'\0'
一行写完了换一行用'\n'
如:
char string[128] = "aaaabbbb";
char *str = "yes";
memcpy(string, str, strlen(str));
printf("%s\n", string);
你会发现打印出来的string不是”yes“而是”yesabbbb“
如果要让他输出”yes“的话有两个办法:
一个是把拷贝的大小改成128,也就是memcpy(string, str, 128);
二是将string,也就是”yesabbbb“的第4个字符也就是‘a’,变成‘\0’,即string[strlen(str)] = '\0';
然后再看printf("%s\n", string);这个函数,在%s后面加\n是为了换行,如果你不加\n的话你会发现当你执行完这段程序屏幕输出”yesabbbb“的时候,你的光标是紧跟在这个字符串后面的
一旦你加了‘\n’,光标就会在这个字符串的下一行出现了,所以\n起的是一个换行回车的作用
至于在什么情况下用他们,一般情况下在对字符串操作的时候用\0
对于你觉得需要换行的时候就用\n
一个是对字符串的操作一个是对行的操作,应该很容易理解
一行写完了换一行用'\n'
如:
char string[128] = "aaaabbbb";
char *str = "yes";
memcpy(string, str, strlen(str));
printf("%s\n", string);
你会发现打印出来的string不是”yes“而是”yesabbbb“
如果要让他输出”yes“的话有两个办法:
一个是把拷贝的大小改成128,也就是memcpy(string, str, 128);
二是将string,也就是”yesabbbb“的第4个字符也就是‘a’,变成‘\0’,即string[strlen(str)] = '\0';
然后再看printf("%s\n", string);这个函数,在%s后面加\n是为了换行,如果你不加\n的话你会发现当你执行完这段程序屏幕输出”yesabbbb“的时候,你的光标是紧跟在这个字符串后面的
一旦你加了‘\n’,光标就会在这个字符串的下一行出现了,所以\n起的是一个换行回车的作用
至于在什么情况下用他们,一般情况下在对字符串操作的时候用\0
对于你觉得需要换行的时候就用\n
一个是对字符串的操作一个是对行的操作,应该很容易理解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-01-27
展开全部
\0是在字符串后用的,
\n是在换行的时候用。
\n是在换行的时候用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般是针对字符串的操作的.
加下\0是告诉计算机遇到它后字符变量结束.
而\n只是代表换行的意思.字符串中可以有任何多个\n,\t,\r...但肯定最结束只有一个NULL即\0结束的.
加下\0是告诉计算机遇到它后字符变量结束.
而\n只是代表换行的意思.字符串中可以有任何多个\n,\t,\r...但肯定最结束只有一个NULL即\0结束的.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
\n表示回车换行
\0表示空值(数值为0)
'\0'与'0'是有区别的,在机器内部分别表示为00000000和00110000。其中二进制00110000是十进制数48,是字符'0'的ASCII码值。
\0表示空值(数值为0)
'\0'与'0'是有区别的,在机器内部分别表示为00000000和00110000。其中二进制00110000是十进制数48,是字符'0'的ASCII码值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询