当前位置: 代码迷 >> C语言 >> [求助]求助,这个程序哪里错了.
  详细解决方案

[求助]求助,这个程序哪里错了.

热度:93   发布时间:2007-04-23 16:37:12.0
[求助]求助,这个程序哪里错了.
两个字符串的连接.
#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"是什么意思,是一个字符串的定义吗.
搜索更多相关的解决方案: include  字符串  

----------------解决方案--------------------------------------------------------
定义一个指向字符类型的指针变量.
字符串是一个常量,而*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编辑过]


----------------解决方案--------------------------------------------------------
谢谢啦.原来是这个问题啊
----------------解决方案--------------------------------------------------------
  相关解决方案