最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

C++實(shí)現(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)
{
    // 請?jiān)诖颂砑哟a,實(shí)現(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)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C語言實(shí)現(xiàn)軍旗游戲的示例代碼

    C語言實(shí)現(xiàn)軍旗游戲的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C語言實(shí)現(xiàn)軍旗游戲,文中的示例代碼講解詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-11-11
  • C語言數(shù)組學(xué)習(xí)之特殊矩陣的壓縮存儲

    C語言數(shù)組學(xué)習(xí)之特殊矩陣的壓縮存儲

    矩陣在計(jì)算機(jī)圖形學(xué)、工程計(jì)算中都占有舉足輕重的地位,本文將討論如何將矩陣更有效地存儲在內(nèi)存中,并且能夠方便地提取矩陣中的元素。感興趣的同學(xué)可以了解一下
    2021-12-12
  • C++?多態(tài)虛函數(shù)的底層原理深入理解

    C++?多態(tài)虛函數(shù)的底層原理深入理解

    這篇文章主要介紹了C++?多態(tài)虛函數(shù)的底層原理深入理解,多態(tài)是在不同繼承關(guān)系的類對象,去調(diào)用同一函數(shù),產(chǎn)生了不同的行為,通常是父類調(diào)用子類的重寫函數(shù),在C++中就是?父類指針指向子類對象,此時父類指針的向下引用就可以實(shí)現(xiàn)多態(tài)
    2022-08-08
  • C語言函數(shù)棧幀的創(chuàng)建與銷毀詳解

    C語言函數(shù)棧幀的創(chuàng)建與銷毀詳解

    函數(shù)棧幀(stack frame)就是函數(shù)調(diào)用過程中在程序的調(diào)用棧(call stack)所開辟的空間,下面這篇文章主要給大家介紹了關(guān)于C語言函數(shù)棧幀的創(chuàng)建與銷毀的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • 簡單談?wù)凜++中指針與引用的區(qū)別

    簡單談?wù)凜++中指針與引用的區(qū)別

    指針和引用在C++中很常用,但是對于它們之間的區(qū)別很多初學(xué)者都不是太熟悉,下面來談?wù)勊麄?者之間的區(qū)別和用法
    2017-04-04
  • C++實(shí)現(xiàn)LeetCode(8.字符串轉(zhuǎn)為整數(shù))

    C++實(shí)現(xiàn)LeetCode(8.字符串轉(zhuǎn)為整數(shù))

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(8.字符串轉(zhuǎn)為整數(shù)),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++中AVL樹的底層以及實(shí)現(xiàn)方法總結(jié)

    C++中AVL樹的底層以及實(shí)現(xiàn)方法總結(jié)

    這篇文章主要介紹了C++中AVL樹的底層以及實(shí)現(xiàn)方法的相關(guān)資料,AVL樹是一種自平衡的二叉搜索樹,每個節(jié)點(diǎn)的左右子樹高度差不超過1,通過旋轉(zhuǎn)操作保持平衡,詳解了AVL樹的結(jié)構(gòu)、插入、旋轉(zhuǎn)、查找和遍歷方法,展示了其保持平衡的機(jī)制及對應(yīng)代碼實(shí)現(xiàn),需要的朋友可以參考下
    2024-10-10
  • C++中POCO庫的安裝與基礎(chǔ)知識介紹(Windwos和Linux)

    C++中POCO庫的安裝與基礎(chǔ)知識介紹(Windwos和Linux)

    這篇文章主要為大家介紹了C++ POCO庫的簡單介紹、下載以及安裝方式、簡單代碼示例,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-05-05
  • QML與C++交互的實(shí)現(xiàn)步驟

    QML與C++交互的實(shí)現(xiàn)步驟

    本文主要介紹了QML與C++交互的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++如何使用new來初始化指向類的指針

    C++如何使用new來初始化指向類的指針

    這篇文章主要介紹了C++如何使用new來初始化指向類的指針問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07

最新評論

鲁山县| 夏河县| 江华| 富宁县| 延津县| 荔浦县| 尚义县| 平舆县| 马公市| 吉安县| 蕲春县| 许昌县| 兴安县| 绍兴县| 龙门县| 永泰县| 黑水县| 咸宁市| 娄烦县| 浮梁县| 嘉黎县| 绥滨县| 广昌县| 宜兰县| 梅州市| 四平市| 永宁县| 桂平市| 长阳| 夏津县| 怀来县| 八宿县| 东明县| 宜黄县| 汶川县| 山阳县| 龙游县| 山阴县| 垫江县| 大同市| 固阳县|