编写函数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++是什么意思? 展开
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++是什么意思? 展开
1个回答
展开全部
#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++;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询