2022年6月25日星期六

C strcat

char *strcat(char *string1, const char *string2);

功能把string2連接在string1之後。

函式會回傳string1的位址

程式碼

  1. #include <string.h>
  2. #include <stdio.h>
  3. int main()
  4. {
  5. char String1[12] = "hello";
  6. char String2[6] = "World";
  7. char * ptr;
  8.  
  9. printf("befor strcat\n");
  10. printf("String1:%s\n",String1);
  11. printf("String1 Size:%d\n\n",sizeof(String1));
  12.  
  13. ptr = strcat(String1,String2);
  14.  
  15. printf("After strcat\n\n");
  16.  
  17. printf("String1:%s\n",String1);
  18. printf("String1 address:%p\n\n",String1);
  19. printf("String1 Size:%d\n\n",sizeof(String1));
  20.  
  21. printf("ptr address:%p\n",ptr);
  22. printf("ptr :%s\n",ptr);
  23. return 0;
  24. }

在使用上需要去注意string1的陣列長度是否足夠,否則會發生問題,將string1的大小由12改成6,並執行下面程式碼測試

  1. #include <string.h>
  2. #include <stdio.h>
  3. int main()
  4. {
  5. char String1[6] = "hello";
  6. char String2[6] = "World";
  7. char * ptr;
  8.  
  9. printf("befor strcat\n");
  10. printf("String1:%s\n",String1);
  11. printf("String1 Size:%d\n\n",sizeof(String1));
  12.  
  13. ptr = strcat(String1,String2);
  14.  
  15. printf("After strcat\n\n");
  16.  
  17. printf("String1:%s\n",String1);
  18. printf("String1 address:%p\n\n",String1);
  19. printf("String1 Size:%d\n\n",sizeof(String1));
  20.  
  21. printf("ptr address:%p\n",ptr);
  22. printf("ptr :%s\n",ptr);
  23. return 0;
  24. }

我們可以看到字串印出來怪怪的

參考資料

https://www.ibm.com/docs/en/i/7.1?topic=functions-strcat-concatenate-strings

https://zh.m.wikipedia.org/zh-tw/String.h#%E5%87%BD%E6%95%B0

https://www.tutorialspoint.com/c_standard_library/c_function_strcat.htm

沒有留言:

發佈留言

打賞按讚