1. 程式人生 > >strncpy:複製字串的子串

strncpy:複製字串的子串

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

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

int main(int argc, char **argv)
{
    char buf[20]="6.0 1257487794/n";
    char da[5]={0};
    char num[15]={0};    
    int i=0, j=0;

    strncpy(da, buf, 3);

    strncpy(num, buf+(strlen(buf)-11) , 10);
    
    printf("buf= %s, da= %s, num= %s/n", buf, da, num);  

    return 1;

 }

     在上例中,第一次呼叫strncpy()函式時,它將源字串的頭3個字元拷貝到da中。第二次呼叫strncpy()函式時,它將源字串的最後10個字元拷貝到num中,其實現過程為:
    (1)用strlen()函式計算出buf字串的長度,即strlen(buf)。
    (2)將buf的長度減去11(10是將要拷貝的字元數再加中間的‘ ’字元),得出buf中剩餘的字元數,即pstrlen(buf)-11。
    (3)將strlen(buf)-11和buf的地址相加,得出指向buf中倒數第10個字元的地址的指標, 即buf+(strlen(buf)-11)。這個指標就是strncpy()函式的第二個引數。
    (4)在strncpy()函式的第三個引數中指定要拷貝的字元是10。

    列印輸出如下所示:

    [email protected]:~/work/data_check$ ./test
    buf= 6.0 1257487794
     , da= 6.0, num= 1257487794

相關推薦

strncpy複製字串的子

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

算法基礎刪除中出現次數最少的符(Golang實現)

cfb 出現次數 英文字母 clas har str 長度 == tracking 描寫敘述: 實現刪除字符串中出現次數最少的字符。若多個字符出現次數一樣,則都刪除。輸出刪除這些單詞後的字符串。 字符串中其他字符保持原來的順序。 輸入: 字符串僅僅包括小

轉載SQL 操作函數

替換 abc logs bcd ring 小寫 cnblogs 重復字符 null http://www.cnblogs.com/jiajiayuan/archive/2011/06/16/2082488.html 以下所有例子均Studnet表為例: 計算字符串長度le

第五天python和列表

python一、簡單函數的使用1.定義函數格式如下: # 定義一個函數 def test(): print ‘----哈哈----‘ print ‘----這是我的第一個函數----‘ # 調用函數 test()2.時間函數開發中,經常需要打印一些調試的信息

未解決含…

nan reduce lam == operation href right 語句 otto 用reduce拼了一個超長sql語句,大約65000字符,運行通不過,報錯: OperationalError: (1054, "Unknown column ‘nan‘ in ‘

ORACLE---Unit02 Oracle操作 、 Oracle數值操作 、 Oracle日期操作 、 空值操作

其它 sca 需要 一個 rtrim unit con ava 空字符 ---DQL:數據查詢語句 ---SELECT語句中必須包含至少兩個字句,分別是SELECT字句與FROM字句。 ---SELECT子句用來指定要查詢的字段, ---FROM子句用來定制數據來源的表。

C#中連續空格轉換為一個空格

lar div 代碼 com program 數組 http static spa 使用正則表達式來進行轉換,代碼如下: 註:Trim()方法是去掉字符串首尾的空格;經過正則轉換之後,就可以直接用Split進行分割成數組 “\”:是轉義 , “\s”:代表空格 ,

算法符是否全部被包含在長

In 遍歷 pan hash gone char col str int 算法題目:有兩個字符串由不同的字母組成,一長一短,長的為A短的為B。設計一個算法,如果所有在B中出現的字符都在A中出現,則返回true,否則返回false。 如下字符串: 字符串A: abdd

Python學習12.格式化

字符串格式化 科學 16進制 表示 最大的 字符 sig 定位 沒有 字符串格式化   講解Python這麽久,也沒有講解Python的字符串的格式化,那我們今天就來了解一下python字符串格式化的強大之處。 字符串格式化的兩種方式   百分號方式和format方式,百分

算法練習的最長重復子(Java實現)

重復 char數組 ava 時間 sta 位置 length 結束 substr 1. 求字符串的最長重復子串 例如:aaaaaaaaabbbbcccaaassscvvv這裏面的最長重復子串為aaaaaaaaa 算法思路:算法時間復雜度(O(n)) 1. 將這一個字符

python處理中的數字相加求和

span 進入 滿足 處理 http 出現 bubuko lse tr1 計算字符串中所有數字的和,字符串中有數字和字母組合而成如果出現連續數字,按照一個數操作具體解釋在代碼行裏: def sum_str(str1): len1=len(str1) #首先

python學習修改大小寫

tle 修改 font pri 小寫 span 輸出 print int 修改字符串大小寫 函數:title()字符串首字母大寫,upper()字符串全部大寫,lower()字符串全部小寫。 代碼舉例: name = "ada lovelace"print(name.tit

【ForOffer】【深信服--測試開發崗筆試題】求最少車費&求最低位&找馬甲&找串子

深信服的整體筆試題難度一般,有多刷題的經驗,能立馬找出了題意理解,在此,自己只是做個總結髮出,有更好的解法的童靴可以一起交流,其實這四道題都是常見題型的一種變形。程式碼照著搬都是沒有問題的哦! 第一題:求最低位  關鍵點說明:主要是對二進位制轉換,並且擷取到了從右

隨筆-實現strStr() (找到串子)

題目: 實現 strStr() 函式。 給定一個 haystack 字串和一個 needle 字串,在 haystack 字串中找出 needle 字串出現的第一個位置 (從0開始)。如果不存在,則返回 -1。 示例 1: 輸入: haystack = “hello”,

【演算法】求串子的高效實現

出處 有一道秋招筆試題是這樣: 輸入兩個正整數n、d(1<=d<=1000),把n看成字串,求n的所有子串中能被d整除的子串的個數。 示例1: 輸入:1234 4,輸出:4,說明:12、124、24、4 示例2: 輸入:616 3,輸出:3,說明:6、

怎麼獲取字串中最後一個“\”的位置? 獲取串子

得到一個字串,如:strFileFullName = "D:\code\cpp\data\frames_Src\001.jpg" 怎樣得到: strFilePath = "D:\code\cpp\

動態規劃——求兩個串子的個數和最長子的長度

美圖測開的筆試題: 求兩個字串的子串個數和最大子串長度。 (需要注意一下子串和子序列概念並不相同) 字串1:str1,字串2:str2 用dp[i][j]表示以str1[i]和str[j]結尾的相同子串的長度。 則轉移方程顯然為: 1.str1[i] != str2[j]

串子數目的方法

最近在做一些演算法題,經常遇到字串的問題,需要計算字串子串的數目,字串的子串數目為 n(n+1)/2 + 1,這個答案是如何求得的呢? 我們都知道子串是一個字串中連續的一段,其實你可以把它抽象為

演算法面試題之串子

“字串子串”是網易2017年校園招聘題。 題目: 一種雙核CPU的兩個核能夠同時的處理任務,現在有n個已知資料量的任務需要交給CPU處理,假設已知CPU的每個核1秒可以處理1kb,每個核同時只能處理一項任務。n個任務可以按照任意順序放入CPU進行處理,現在需

Java中獲取特定符號中間串子的方法

使用str.split(" "); 方法 如: 將str這個字串用逗號“,”進行分割,分割後的字串陣列放在a[]中 比如 111,222,333 那麼a[0]=111 a[1]=222 a[2]=