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

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

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

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

提示

函數 strmncpy 的原型為:

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

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

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

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

例如:

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

輸出結果為:efghij

測試說明

測試輸入:

abcdefghjkksdsd
5 7

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

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

c++字符串復制/string、char*、char[]轉換

1.char*轉string:可以直接賦值。

2.char[]轉string:可以直接賦值。

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

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

5.string轉char*:調用string對象的c_str函數或data函數或copy函數。

6.char[]轉char*:直接賦值即可。

主要列舉下char*復制到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:我用一直內存寫入錯誤,如果你能用就直接用就行了。
  • const_cast:據說可以,沒用過。

總結

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

相關文章

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

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

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

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

    這篇文章主要介紹了C/C++?單元自動化測試解決方案總結,通過利用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)境,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • C++中的string庫函數常見函數的作用和使用方法

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

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

    盤點分析C語言中少見卻強大的字符串函數

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

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

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

    使用代碼驗證linux子進程與父進程的關系

    Linux下父進程可以使用fork 函數創(chuàng)建子進程,但是當父進程先退出后,子進程會不會也退出呢?通過下面這個小實驗,我們能夠很好的看出來
    2014-02-02
  • C語言數據結構之線性表的鏈式存儲結構

    C語言數據結構之線性表的鏈式存儲結構

    線性表是最基本、最簡單、也是最常用的一種數據結構。線性表(linear list)是數據結構的一種,一個線性表是n個具有相同特性的數據元素的有限序列,這篇文章帶你學習下線性表的鏈式存儲結構
    2021-11-11
  • C語言實現(xiàn)文本編輯器系統(tǒng)

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

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

    C++一個數組賦值給另一個數組方式

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

最新評論