亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

您好,關于以下這個C語言 stacat的函數問題?該怎么解決?

您好,關于以下這個C語言 stacat的函數問題?該怎么解決?

jeck貓 2021-10-05 11:07:18
#include<stdlib.h>#include<stdio.h>#include<conio.h>void fun(char p1[],char p2[]){char *s1,*s2;s1=p1;s2=p2;while(*s1!='\0')s1++;while(*s2!='\0'){*s1=*s2;s1++;s2++;}}void main(){char s1[80],s2[40];system("CLS");printf("Enter s1 and s2:\n");scanf("%s %s",s1,s2);printf("s1=%s\n",s1);printf("s2=%s\n",s2);printf("Invoke fun(s1,s2):\n");fun(s1,s2);printf("After invoking:\n");printf("%s\n",s1);}編譯出來后為什么后面會有燙燙燙燙燙。。。如圖求解
查看完整描述

2 回答

?
森欄

TA貢獻1810條經驗 獲得超5個贊

最后的s1后面沒賦值‘\0’

修正后的

#include<stdlib.h>

#include<stdio.h>

#include<conio.h>

void fun(char p1[],char p2[])

{char *s1,*s2;

s1=p1;s2=p2;

while(*s1!='\0')

s1++;

while(*s2!='\0')

{*s1=*s2;s1++;s2++;}

*s1='\0';

}

void main()

{

 char s1[80],s2[40];

 system("CLS");

 printf("Enter s1 and s2:\n");

 scanf("%s %s",s1,s2);

 printf("s1=%s\n",s1);

 printf("s2=%s\n",s2);

 printf("Invoke fun(s1,s2):\n");

 fun(s1,s2);

 printf("After invoking:\n");

 printf("%s\n",s1);

}


查看完整回答
反對 回復 2021-10-10
?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

因為S1沒有'\0'結束符,在
while(*s1!='\0')
s1++;
while(*s2!='\0')
{*s1=*s2;s1++;s2++;}

兩個地方,都把'\0'去掉了,在fun函數最后加
s++;*s='\0'

查看完整回答
反對 回復 2021-10-10
  • 2 回答
  • 0 關注
  • 332 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號