欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++如何實現(xiàn)字符串的部分復(fù)制

 更新時間:2023年08月14日 10:17:49   作者:CNDaisy  
這篇文章主要介紹了C++如何實現(xiàn)字符串的部分復(fù)制問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

C++實現(xiàn)字符串的部分復(fù)制

提示

函數(shù) strmncpy 的原型為:

void strmncpy(char *s, int m, int n, char *t);

參數(shù) s 指向源字符串,t 指向字符串復(fù)制的目標(biāo)單元,函數(shù)功能為將 s 指向字符串從第 m 個(從0開始編號)字符開始的連續(xù) n 個字符復(fù)制到 t 指向的存儲單元;

如果第 m 個字符后面的字符數(shù)不足 n 個,則復(fù)制到 ‘\0’為止;

如果 s 的長度不到 m,則復(fù)制空串。

例如:

char *s = "abcdefghijklmn";
char t[20];
strmncpy(s,4,6,t);
cout << t << endl;

輸出結(jié)果為:efghij

測試說明

測試輸入:

abcdefghjkksdsd
5 7

預(yù)期輸出:fghjkks

測試輸入:

asdftyuioplkm
3 9

#include <iostream>
using namespace std;
void strmncpy(char* s, int m, int n, char* t);
int main()
{
    char s[128], t[128];
    int m, n;
    cin >> s;     // 輸入源串
    cin >> m >> n;     // 輸入m和n
    strmncpy(s, m, n, t);     // 字符串復(fù)制
    cout << t << endl;     // 輸出復(fù)制結(jié)果
    return 0;
}
// 函數(shù)strmncpy:字符串的部分復(fù)制,將s指向字符串從第m個字符開始的n個字符復(fù)制的t中
// 參數(shù):s-指向源字符串,t-指向目標(biāo)字符串,m-起始位置,n-字符個數(shù)
// 返回值:無
void strmncpy(char* s, int m, int n, char* t)
{
    // 請在此添加代碼,實現(xiàn)函數(shù)strmncpy
    /********** Begin *********/
    char* p = s;//這個用來跑
    char* q = t;//這個用來存
    int a = 0;//用于執(zhí)行循環(huán)的次數(shù)
    p = p + m;//直接把地址改到目標(biāo)數(shù)組的目標(biāo)位置上去,最簡單
    while (a < n)
    {
        *q++ = *p++;//把符合的值賦到用來存的指針這邊
        a++;
    }
    *q = '\0';//結(jié)束,輸出*q
    /********** End **********/
}

這是我想到最快的方法,希望我的代碼可以幫到有需要的人

c++字符串復(fù)制/string、char*、char[]轉(zhuǎn)換

1.char*轉(zhuǎn)string:可以直接賦值。

2.char[]轉(zhuǎn)string:可以直接賦值。

3.char*轉(zhuǎn)char[]:不能直接賦值,可以循環(huán)char*字符串逐個字符賦值,也可以使用strcpy_s等函數(shù)。

4.string轉(zhuǎn)char[]:不能直接賦值,可以循環(huán)char*字符串逐個字符賦值,也可以使用strcpy_s等函數(shù)。

5.string轉(zhuǎn)char*:調(diào)用string對象的c_str函數(shù)或data函數(shù)或copy函數(shù)。

6.char[]轉(zhuǎn)char*:直接賦值即可。

主要列舉下char*復(fù)制到char*

錯誤方法1:

char *a = char *b

錯誤原因:類型是指針,直接賦值會使兩個指針指向同一個地址,改動一個另一個也會變。

錯誤方法2:

string a=char *b
char *c=a.data() //或者char *c=a.c_str()

錯誤原因:string.data()返回值是const char*類型,不是char*類型。

正確方法:

string a=char *b
char *c=(char*)a.data() //或者char *c=a.c_str()

其他方法:

  • strcpy:我用一直內(nèi)存寫入錯誤,如果你能用就直接用就行了。
  • const_cast:據(jù)說可以,沒用過。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++寫時拷貝實現(xiàn)原理及實例解析

    C++寫時拷貝實現(xiàn)原理及實例解析

    這篇文章主要介紹了C++寫時拷貝實現(xiàn)原理及實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • C/C++?單元自動化測試解決方案總結(jié)

    C/C++?單元自動化測試解決方案總結(jié)

    這篇文章主要介紹了C/C++?單元自動化測試解決方案總結(jié),通過利用GCC插件來實現(xiàn)提升C/C++開發(fā)者的單元效率工具解決方案,希望對大家在提升單元測試效率上有所啟發(fā)
    2022-06-06
  • 如何使用arm-none-eabi-gcc編譯器搭建STM32的Vscode開發(fā)環(huán)境

    如何使用arm-none-eabi-gcc編譯器搭建STM32的Vscode開發(fā)環(huán)境

    這篇文章主要介紹了使用arm-none-eabi-gcc編譯器搭建STM32的Vscode開發(fā)環(huán)境,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • C++中的string庫函數(shù)常見函數(shù)的作用和使用方法

    C++中的string庫函數(shù)常見函數(shù)的作用和使用方法

    這篇文章主要介紹了C++中的string庫函數(shù)常見函數(shù)的作用和使用方法,庫函數(shù)的靈活應(yīng)用是程序員的一大重要技能,本文通過實例實例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • 盤點(diǎn)分析C語言中少見卻強(qiáng)大的字符串函數(shù)

    盤點(diǎn)分析C語言中少見卻強(qiáng)大的字符串函數(shù)

    這篇文章主要為大家盤點(diǎn)及分析C語言中少見卻強(qiáng)大的字符串函數(shù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02
  • OpenCV基于稠密光流實現(xiàn)視頻跟蹤詳解

    OpenCV基于稠密光流實現(xiàn)視頻跟蹤詳解

    這篇文章主要為大家詳細(xì)介紹了OpenCV如何基于稠密光流實現(xiàn)視頻跟蹤功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,需要的可以參考一下
    2023-02-02
  • 使用代碼驗證linux子進(jìn)程與父進(jìn)程的關(guān)系

    使用代碼驗證linux子進(jìn)程與父進(jìn)程的關(guān)系

    Linux下父進(jìn)程可以使用fork 函數(shù)創(chuàng)建子進(jìn)程,但是當(dāng)父進(jìn)程先退出后,子進(jìn)程會不會也退出呢?通過下面這個小實驗,我們能夠很好的看出來
    2014-02-02
  • C語言數(shù)據(jù)結(jié)構(gòu)之線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)

    C語言數(shù)據(jù)結(jié)構(gòu)之線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)

    線性表是最基本、最簡單、也是最常用的一種數(shù)據(jù)結(jié)構(gòu)。線性表(linear list)是數(shù)據(jù)結(jié)構(gòu)的一種,一個線性表是n個具有相同特性的數(shù)據(jù)元素的有限序列,這篇文章帶你學(xué)習(xí)下線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)
    2021-11-11
  • C語言實現(xiàn)文本編輯器系統(tǒng)

    C語言實現(xiàn)文本編輯器系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)文本編輯器系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • C++一個數(shù)組賦值給另一個數(shù)組方式

    C++一個數(shù)組賦值給另一個數(shù)組方式

    文章介紹了三種在C++中將一個數(shù)組賦值給另一個數(shù)組的方法:使用循環(huán)逐個元素賦值、使用標(biāo)準(zhǔn)庫函數(shù)std::copy或std::memcpy以及使用標(biāo)準(zhǔn)庫容器,每種方法都有其適用的場景和注意事項
    2025-02-02

最新評論