[問題] C 使用pointer 傳array的問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
X-code 6.1.1
我是一個C 語言的自學新手,正在自修"C語言程式設計 -蔡文能" 這本書。
做到Exercise 5-3 的時候,遇到一點問題想請問一下大家
"請使用指標的觀念寫一個strcat(s, t)的函數,將字串t抄到字串s的尾端"
以下是我寫的程式碼, 基本上跟解答幾乎一模一樣,
但怎麼跑原始的那個字串(ori) 都不會改變,請問是出了什麼問題?
我在十三誡那邊看到一個 "不能用char* 改變字串常數"
是因為出在這個問題嗎?
====================================================================
#include <stdio.h>
void strcat_user (char *, char *);
int main(int argc, const char * argv[]) {
char ori[30] = "hello, ";
char add[] = "world.";
strcat_user(ori, add);
//strcat_user(&ori[0], &add[0]);
printf("%s\n", ori);
return 0;
}
void strcat_user (char *ori, char *add){
while (*ori++)
;
while ((*ori++ = *add++))
;
}
==========================================================
如果是的話, 請問要怎麼改?
因為我也試過把function 改成
void strcat_user (char *ori, char *add)
然後用標註的方式去把新字串加進去
int i =0;
while ( ori[i] != '\0')
i++;
while ((ori[i] = *add++))
;
但還是fail
麻煩大家了
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.129.7.78
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1420358386.A.6C3.html
推
01/04 21:36, , 1F
01/04 21:36, 1F
→
01/04 22:45, , 2F
01/04 22:45, 2F
→
01/05 00:47, , 3F
01/05 00:47, 3F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):