strncpy函數的用法


利用標准庫函數strncpy(),可以將一字符串的一部分拷貝到另一個字符串中。strncpy()函數有3個參數:第一個參數是目錄字符串;第二個參數是源字符串;第三個參數是一個整數,代表要從源字符串拷貝到目標字符串中的字符數。以下是一個用strncpy()函數拷貝字符串的一部分的例子:    

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

void main(void);
void main (void)
{
    char * source_str = "THIS IS THE SOURCE STRING" ;
    char dest_strl[40]= {0}, dest_str2[40]= {0};
    / * Use strncpy() to copy only the first 11 characters. * /
    strncpy(dest_strl, source-str, 11);
    printf("How about that! dest-strl is now: '%s'!!!\n", dest-strl);
    / * Now, use strncpy() to copy only the last 13 characters. * /
    strncpy(dest_strl, source_str + (strlen(source_str)-l3) , 13);
    printf("Whoa! dest_str2 is now: '%s'!!!\n". dest_str2);
}

    在上例中,第一次調用strncpy()函數時,它將源字符串的頭11個字符拷貝到dest_str1中,這是一種相當直接的方法,你可能會經常用到。第二次調用strncpy()函數時,它將源字符串的最后13個字符拷貝到dest_str2中,其實現過程為:
    (1)用strlen()函數計算出source_str字符串的長度,即strlen(source_str)。
    (2)將source_str的長度減去13(13是將要拷貝的字符數),得出source_str中剩余的字符數,即pstrlen(source_str)-13。
    (3)將strlen(source_str)-13和source_str的地址相加,得出指向source_str中倒數第13個字符的地址的指針,即source_str+(strlen(source_str)-13)。這個指針就是strncpy()函數的第二個參數。
    (4)在strncpy()函數的第三個參數中指定要拷貝的字符是13。

上例的打印輸出如下所示:
    How about that! dest_str1 is now:'THIS IS THE'!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM