编写函数catStr(char*str1,char*str2)用于进行两个字符串的连接,采用指针实现其过程,并在主函数中调用.

#include<stdio.h>catstr(char*str1,char*str2);main(){chars1[]="abc",s2[]="ABC";char*p1... #include<stdio.h>
catstr(char *str1,char *str2);
main(){
char s1[]="abc",s2[]="ABC";
char *p1=s1,*p2=s2;
catstr(p1,p2);}
catstr(char *str1,char *str2){
while (*str1!='\0'){
str1++;}
while (*str2!='\0'){
*str1++=*str2++;}
*str1='\0';
puts(str1);
}
请问哪里错了? 还有*str1++=*str2++是什么意思?
展开
 我来答
IT孤鹜
推荐于2017-12-16 · TA获得超过4198个赞
知道大有可为答主
回答量:3960
采纳率:71%
帮助的人:3588万
展开全部
#include<stdio.h>
catstr(char *str1,char *str2);
main(){
char s1[20]="abc",s2[]="ABC";//s1要足够大
char *p1=s1,*p2=s2;
catstr(p1,p2);
puts(s1);//在这里输出
}
catstr(char *str1,char *str2){
while (*str1!='\0'){
    str1++;}
  while (*str2!='\0'){
      *str1++=*str2++;} //这里是赋值,再指针后移
  *str1='\0';
 // puts(str1);
}
追问
*str1++=*str2++;请问这个赋值代表什么意义?puts(str1);为什么不能在子函数中直接输出?
追答
你的puts (str1) 其实是一个空      因为str1='\0' 输出没意义
还有就是 *str1++=*str2++ 可以看成是 *str1=*str2,str1++,str2++;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式