snprintf拼接字符串


例如編輯一個txt文檔,不斷將字符輸入,最終形成一個長句子。可以看成是字符串的不斷拼接。snprintf函數具有這個功能。

#include<stdio.h>
 void main(void)
{
   char str[20]={0};
   snprintf(str, 4,"abc");
   snprintf(str+3, 4, "def");  //從數組str的第3個位置開始繼續復制4個字符
   printf("str:%s\n",str);
}

運行結果:

1 str:abcdef

這里定義了一個20個字節長度的數組,第一次填充情況,注意最后的\0也占一個字節。第二次填充時應該把\0覆蓋,str+3。不然printf時遇到\0就停止打印。

a b c \0                                
                                       

 通常在拼接字符串的時候,並不知道前面填充了多少位。這時需要用strlen函數計算出來。

#include<stdio.h>
#include<string.h>
 void main(void)
{
   char str[20]={0};

   snprintf(str, 4,"abc");
   snprintf(str+ strlen(str), 4, "def");
   printf("str:%s\n",str);
}

 利用sprintf函數在字符串前插入字符

char str1[40];
char str2[40];
if(strlen(str1)%2)
{
    sprintf(str2,"%c", '0');         
    sprintf(str2+1,"%s", str1);
}else{
    sprintf(str2,"%s", str1);
}

如果str1的字符串長度為奇數就在字符串前加"0"然后復制給str2。


免責聲明!

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



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