程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> C語言使用指針連接兩個字符串,這個錯哪了?

C語言使用指針連接兩個字符串,這個錯哪了?

編輯:C語言問答

C語言使用指針連接兩個字符串,這個錯哪了?

補充:
#include<stdio.h>
void main()
{
int strcat_(char *a,char *b);
char *a="hello";
char *b="rabbit";
strcat_(a,b);
printf("%s\n",b);


}
int strcat_(char *a,char *b)
{
while(*a!='\0')
a++;
while(*b!='\0')
{
*a=*b;
a++;
b++;
}
*a='\0';


} 補充:如果把char *a="hello";
char *b="rabbit";
改成char a[40]="hello";char b[40]="rabbit";
就正確了,但不明白為什麼

最佳回答:

指向字符串的指針所指向的字符串是字符串常量,看清楚,是常量啊,所以不能被改變。所以你必須把裡面的一個字符串指針改成字符數組,用來存放連接後的字符。還有你要輸出的應該是a不是b把。所以你應該把a定義成字符數組而不是指向字符串的指針

#include<stdio.h>
int strcat_(char*,char*);
void main()
{


char a[20]="hello";
char *b="rabbit";
strcat_(a,b);
printf("%s\n",a);




}
int strcat_(char *a,char *b)
{
while(*a!='\0')
a++;
while(*b!='\0')
{
*a=*b;
a++;
b++;
}
*a='\0';
return 0;


}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved