顯示包含「C 字串串接」標籤的文章。顯示所有文章
顯示包含「C 字串串接」標籤的文章。顯示所有文章

2022年6月26日星期日

C strncat

char *strncat(char *string1, const char *string2, size_t count);

主要將string2 的指定的count資料長度接到string1之後。

下面會有兩個範例,分別修改count ,話不多說直接上範例 。

1. count=5

程式碼
#include <stdio.h>
#include <string.h>

int main(void)
{
  char string1[12] = "hello ";
  char * ptr;

  printf("Before strncat\n");
  printf("string1:%s\n\n",string1);

  ptr = strncat( string1, "world", 5 );
  printf("After strncat\n");
  printf( "string1:%s\n\n", string1 );

}

執行結果

2. count=3
嘗試將 ptr = strncat( string1, "world", 5 );改成 ptr = strncat( string1, "world", 3);觀察結果

執行結果


這裡可以發現只印到wor

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

打賞按讚