[求助]求助,这个程序哪里错了.
两个字符串的连接.#include<stdio.h>
int main(void)
{
char s1[10]="This is",*s2=" a box";
char *p=s1;
for(;*p;p++);
for(;*s2;s2++)
{*p=*s2;p++;}
puts(s1);
}
这里的*s2=" a box"是什么意思,是一个字符串的定义吗.
----------------解决方案--------------------------------------------------------
定义一个指向字符类型的指针变量.
字符串是一个常量,而*s2是一个变量.
----------------解决方案--------------------------------------------------------
那s2指向那个字符串的首地址吗
这个题目对吗
老执行不对啊
[此贴子已经被作者于2007-4-23 16:57:45编辑过]
----------------解决方案--------------------------------------------------------
你这个程序的目的是什么?
----------------解决方案--------------------------------------------------------
两个字符串的连接
----------------解决方案--------------------------------------------------------
#include<stdio.h>
int main(void)
{
char s1[14]="This is",*s2=" a box"; /*你这里连接后的字符串的大小为13,再加上一个'\0',
这个'\0'是为了方便输出,总数为14*/
char *p=s1;
for(;*p;p++);
for(;*s2;s2++)
{*p=*s2;p++;}
*p='\0';
puts(s1);
}
----------------解决方案--------------------------------------------------------
楼上正解!
但如果是输入任意长字符串,就不行了~
[此贴子已经被作者于2007-4-23 17:42:12编辑过]
----------------解决方案--------------------------------------------------------
谢谢啦.原来是这个问题啊
----------------解决方案--------------------------------------------------------