2022年6月25日星期六

C strcat

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

功能把string2連接在string1之後。

函式會回傳string1的位址

程式碼

#include <string.h>
#include <stdio.h>
int main()
{
    char String1[12] = "hello";
    char String2[6] = "World";
    char * ptr;

    printf("befor strcat\n");
    printf("String1:%s\n",String1);
    printf("String1 Size:%d\n\n",sizeof(String1));

    ptr = strcat(String1,String2);

    printf("After strcat\n\n");

    printf("String1:%s\n",String1);
    printf("String1 address:%p\n\n",String1);
    printf("String1 Size:%d\n\n",sizeof(String1));

    printf("ptr address:%p\n",ptr);
    printf("ptr :%s\n",ptr);
    return 0;
}

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

#include <string.h>
#include <stdio.h>
int main()
{
    char String1[6] = "hello";
    char String2[6] = "World";
    char * ptr;

    printf("befor strcat\n");
    printf("String1:%s\n",String1);
    printf("String1 Size:%d\n\n",sizeof(String1));

    ptr = strcat(String1,String2);

    printf("After strcat\n\n");

    printf("String1:%s\n",String1);
    printf("String1 address:%p\n\n",String1);
    printf("String1 Size:%d\n\n",sizeof(String1));

    printf("ptr address:%p\n",ptr);
    printf("ptr :%s\n",ptr);
    return 0;
}

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

參考資料

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

沒有留言:

發佈留言

打賞按讚