#include<stdio.h> main() {char str1[]="hao do you do",str2[10...

发布网友 发布时间:2024-10-24 06:39

我来回答

1个回答

热心网友 时间:1分钟前

这样的结果是正确的。因为输入str2时,虽然你输入的是HOW DO YOU DO,但是执行字符串输入时是以空格为结尾标志,也就是str2只接收到HOW为止,后面的字母都不接收了,所以*p2=HOW,于是printf("%s",p2)语句就只能输出HOW,因为此句没有换行,所以接着printf("%s\n",p1)语句就输出hao do you do,结果就是HOW hao do you do 。

关键还在于用scanf函数输入字符串的规则,假如你不用scanf函数,而用gets函数,那么就能得到你想要的答案,因为gets函数是不能空格为结尾标志,而以'\n',也就是回车键为标志。如下:
#include<stdio.h>

main()
{
char str1[]="hao do you do",str2[15]; /*注意,是str2[15],不是10,因为包括空格之后,str2[10]已经放不下这么多字符了,如果不改的话,就会出错,会影响到后面的printf("%s",p1)的输出。*/
char *p1=str1;
char *p2=str2;

gets(p2); //用这个,就能接收空格,因为不以空格为结尾标志

printf("%s\n",p2);
printf("%s\n",p1);
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com