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

2024-11-17 13:37:40
推荐回答(2个)
回答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

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);
}

回答2:

字符数组输入以空格分隔
你只输入了HOW