为嘛不能运行啊。按照课本上敲得
本帖最后由 ~风介~ 于 2015-10-11 20:52 编辑char *stringcat (char *str1, char *str2 )
{
char *p;
for ( p=str1; *p!='\0';p++);
do { *p++=*str2++;}
while ( *str2!='\0');
*p='\0';
return (str1);
}
#include <stdio.h>
int main(void)
{
char *stringcat ( char *str1, char *str2 );
char string1 ="C languege",string2 []="is fun",*pt;
pt=stirngcat (string1,string2);
printf ( "The new string is :%s",pt );
return 0;
}
完全按照课本敲的,为嘛会这样,还有就是为嘛for循环的作用是使p指向str 1最后的'\0'????
你应该是想把两个字符创连接起来吧,如果是的话应该是pt=strcat (string1,string2);然后添加头文件#include <string.h> 主函数里边第三行应该是pt=stringcat (string1,string2); 同意 #include <stdio.h>
char * stringcat(char * str1, char * str2 )
{
char * p;
p = str1;
for (; *str1 !='\0';str1++);//去掉str1的结束符号并赋值给p
//我搞不懂写课本的人是怎么想的p只是存放了str1的首地址你让它怎么往下指
do
{
*str1++ = *str2++;
}
while ( *str2!='\0');
//*p='\0';//此处已经没有必要加了
//如果非要加也是应该写:*str1 = '\0';
//printf ( "%s", p);
return p;
}
int main(void)
{
char string1="C languege ",string2[]="is fun";
char * pt;
pt = stringcat(string1,string2);
printf ( "The new string is :%s\n",pt );
return 0;
}
已经调试通过.我觉得郝斌老师的课程讲得特别好可以下载来看一下 在C++ 6.0中的运行结果为:
The new string is :C languege is fun
Press any key to continue
livinggo 发表于 2015-10-11 17:23
你应该是想把两个字符创连接起来吧,如果是的话应该是pt=strcat (string1,string2);然后添加头文件#include ...
哦哦,少了添加头问价 桃花飞舞 发表于 2015-10-11 22:41
主函数里边第三行应该是pt=stringcat (string1,string2);
对对,也打错了 爱你没错 发表于 2015-10-11 23:27
#include
char * stringcat(char * str1, char * str2 )
哦哦,我想起来了,for后面是个空语句,里面只有分号,谢谢哈 爱你没错 发表于 2015-10-11 23:29
在C++ 6.0中的运行结果为:
The new string is :C languege is fun
Press any key to continue
恩,课本的结果就是这样 请先把stirng打成string。
页:
[1]