C 庫 - strncat() 函式



C 庫函式`strncat()`接受三個引數,它將由src指向的字串追加到由dest指向的字串的末尾,最多追加n個字元。

以下是一些重點,突出了它的重要性:

  • 它可以防止緩衝區溢位。
  • 它可以控制字串大小。
  • 此函式可以安全地處理字串。
  • 它可以維護軟體應用程式的完整性和健壯性。

語法

以下是C庫函式`strncat()`的語法:

char *strncat(char *dest, const char *src, size_t n)

引數

此函式接受以下引數:

  • dest - 指向目標陣列的指標,該陣列應包含一個C字串,並且應足夠大以容納包含附加空字元的連線結果字串。

  • src - 要追加的字串。

  • n - 要追加的最大字元數。

返回值

此函式返回指向結果字串dest的指標。

示例 1

以下是一個基本的C庫程式,演示了`strncat()`函式的用法。

#include <stdio.h>
#include <string.h>

int main () {
   char src[50], dest[50];

   strcpy(src,  "This is source");
   strcpy(dest, "This is destination");

   strncat(dest, src, 15);

   printf("Final destination string : |%s|", dest);
   
   return(0);
}

輸出

以上程式碼產生以下結果:

Final destination string : |This is destinationThis is source|

示例 2

在這個例子中,我們使用strncat()將源字串中固定長度的子字串連線到目標字串。

#include <stdio.h>
#include <string.h>

int main() {
   char dest[20] = "Hello, ";
   char src[] = "Beautiful World!";

   // Append "World"
   strncat(dest, src + 10, 5); 

   printf("Concatenated substring: %s\n", dest);
   return 0;
}

輸出

執行以上程式碼後,我們得到以下結果:

Concatenated substring: Hello, World

示例 3

下面的程式演示了透過確保固定長度將源字串新增到目標字串。

#include <stdio.h>
#include <string.h>

void customStrncat(char* dest, const char* src, size_t n) {
   size_t dest_len = strlen(dest);
   size_t i;

   for (i = 0; i < n && src[i] != '\0'; i++) {
       dest[dest_len + i] = src[i];
   }
   
   // Null-terminate the result
   dest[dest_len + i] = '\0'; 
}

int main() {
   char dest[20] = "Hello, ";
   char src[] = "World!";

   // Append "World"
   customStrncat(dest, src, 5); 

   printf("Custom concatenated string: %s\n", dest);

   return 0;
}

輸出

執行以上程式碼後,我們得到以下結果:

Custom concatenated string: Hello, World
廣告