博客 / 列表

祝你今天愉快 - C/C++進階學習(十二)字符串替換

C 標準庫沒有 replace 函數。 所以所謂“字符串替換”,本質上都是: 掃描 + 計算長度 + 內存拷貝 C 字符串替換的 3 種常見方式 方式一:生成新字符串 原字符串 = 前段 + src + 後段 新字符串 = 前段 + dst + 後段 不修改原字符串 需要 mal

字符串替換 , 指尖人生 , 數組 , 字符串 , 移動開發 , Android

祝你今天愉快 - C/C++進階學習(十一)字符串截取和大小寫轉換

一、C 語言裏的字符串截取(重點:沒有內置函數) C 標準庫沒有直接的“substring”函數,截取只能靠 指針 + 拷貝 或 手動改 '\0'。 1️⃣ 指針偏移(不拷貝,最快) char str[] = "HelloWorld"; char* sub = str + 5; printf("%s\n", sub); // World

指尖人生 , 字符串 , 移動開發 , 未定義 , 字符轉換 , Android

祝你今天愉快 - C/C++進階學習(十)字符串比較、查找、包含、拼接

一、strcmp —— 字符串比較(區分大小寫) int strcmp(const char *s1, const char *s2); 按 字典序 比較兩個字符串(ASCII) 返回值

指尖人生 , 大小寫 , 移動開發 , 子字符串 , bc , Android

祝你今天愉快 - C/C++進階學習(九)字符串長度及類型轉換

只記錄C的字符串使用方式 C 風格字符串(最底層) const char* s = "hello"; char buf[] = "hello"; 本質:以 `'\0' 結尾的 char 數組 示例: #include stdio.h // 字符串定義 int main() { //printf("He

指尖人生 , 字符串 , 移動開發 , Android , 進制 , 浮點數

祝你今天愉快 - C++進階學習(七) 動態開闢內存的應用場景

需要動態開闢內存的場景有以下幾種: 1. 大數據量的內存開闢 2. 變量的生命週期需要超過函數調用週期 3. 不確定需要多大內存空間,需要運行時開闢內存 示例: int main() { // 假設我們現在需要接收用户所輸入的數,然後進行排序 int num; printf("請輸入數的個數:"); // 獲取用户輸入 scan

指尖人生 , 函數調用 , 移動開發 , 數據 , i++ , c++ , Android

祝你今天愉快 - C++進階學習(六) 靜態內存開闢和動態內存開闢

在 C++ 中,內存管理是核心課題之一。根據內存開闢的時間和方式,主要可以分為靜態內存開闢(通常涉及棧空間和全局/靜態區)和動態內存開闢(堆空間)。 1. 靜態內存開闢 靜態內存開闢是指在編譯階段就確定了大小,並在程序運行到對應作用域時由系統自動分配和釋放的內存。 存儲位置:主要在棧 (Stack) 或 全局/靜態存儲區。

指尖人生 , 數組 , 移動開發 , c++ , Android , 動態內存 , 示例代碼

祝你今天愉快 - C++進階學習(五) 函數指針

在 C++ 中,函數指針(Function Pointer) 是一個特殊的指針變量,它存儲的是函數在內存中的起始地址,而不是數據變量的地址。 1. 基本語法 聲明函數指針的關鍵在於:指針的特徵標(返回類型和參數列表)必須與它指向的函數完全匹配。 語法模板: 返回類型 (*指針變量名)(參數列表); 示例代碼: int add(int a,

指尖人生 , 函數指針 , 移動開發 , 指針變量 , 回調函數 , Android

祝你今天愉快 - C++進階學習(四) 指針循環遍歷和賦值

在 C++ 中,指針可以像數組一樣進行循環遍歷和賦值,這是利用了“數組名退化為指針”以及“指針算術(pointer arithmetic)”的特性。 一、基本原理 數組在大多數表達式中會自動退化為指向首元素的指針。 指針支持+、-、++、--等運算,稱為指針算術。 p + i表示從指針p起偏移i個元素(不是字節!),等價於arr[i]。

指尖人生 , 數組 , 移動開發 , c++ , Android

祝你今天愉快 - C++進階學習(三)二級指針和多級指針

在 C++ 中,二級指針(也稱指針的指針)和多級指針是用於間接訪問內存的高級指針形式。它們的核心思想是:指針本身也是一個變量,也有地址,可以用另一個指針來指向它。 一、一級指針 int a = 10; int* p = a; // p 是一級指針,存儲 a 的地址 p指向a *p得到a的值(

指尖人生 , 二級指針 , 數組指針 , 數組 , 移動開發 , c++ , Android

祝你今天愉快 - C++進階學習(一) 變量地址和指針變量

在 C++ 中,變量地址和指針變量是內存操作的核心概念。 1.變量地址 每個變量在內存中都有一個存儲位置,這個位置用地址表示。 使用取地址運算符可獲取變量的地址。 int x = 42; cout x; // 輸出 x 在內存中的地址(如 0x7ffd1234) 地址是一個

指尖人生 , 數組 , 移動開發 , 字節數 , 指針變量 , c++ , Android

祝你今天愉快 - C++學習(二十七)if/if else 語句和邏輯運算符

C++ 中的 if 和 if-else 語句用於根據條件控制程序的執行流程,配合邏輯運算符可以構建複雜的判斷邏輯。 一、if/if-else語句 1. 基本if語句 if (條件表達式) { // 條件為真(true)時執行的代碼 } 如果條件表達式的值為 非零(即邏輯上為 true),則執行大括

指尖人生 , 移動開發 , include , c++ , Android , ios

祝你今天愉快 - C++學習(二十六) 編程練習2

6.完成編程練習5,但這一次使用一個二維數組來存儲輸入一3年中每個月的銷售量。程序將報告每年銷售量以及三年的總銷售量 #includeiostream using namespace std; int main() { // 月份,二維數組存儲三年的銷售量 const string months[12] = {"1月","2月"

指尖人生 , 移動開發 , include , c++ , Android , ci

祝你今天愉快 - C++學習(二十五) 編程練習1

1.編寫一個要求用户輸入兩個整數的程序。該程序將計算並輸出這兩個整數之間(包括這兩個整數)所有整數的和。這裏假設先輸入較小的整數。例如,如果用户輸入的是2和9,則程序將指出2~9之間所有整數的和為44。 #includeiostream using namespace std; int main() { // 1. 接收用户的輸入,最小值

指尖人生 , 數組 , 移動開發 , include , c++ , Android

祝你今天愉快 - C++學習(二十四)循環嵌套和二維數組

一、二維數組 二維數組可以看作是“數組的數組”,常用於表示表格、矩陣等具有行和列結構的數據。 聲明方式: int arr[3][4]; // 3 行 4 列的整型二維數組 初始化: int matrix[2][3] = { {1, 2, 3}, // 第0行 {4, 5, 6} // 第1行 }

指尖人生 , 數組 , 移動開發 , c++ , Android , 二維數組 , ios

祝你今天愉快 - C++學習(二十三)關係表達式 和 while / do...while 循環

一、關係表達式 關係表達式用於比較兩個值的大小或相等性,結果是一個 布爾值(true 或 false)。 常見關係運算符: 運算符 含義 示例

指尖人生 , 移動開發 , include , i++ , c++ , Android , ios

祝你今天愉快 - C++學習(二十二) 組合賦值運算,++ 和 --

C++ 中的複合賦值運算符(也稱組合賦值運算符)是對“操作 + 賦值”這一常見模式的簡寫,使代碼更簡潔、可讀性更強。 運算符 含義 等價

指尖人生 , 移動開發 , include , 賦值 , 操作數 , c++ , Android

祝你今天愉快 - C++學習(二十一) for循環

一、介紹 C++ 中的 for 循環用於重複執行一段代碼,主要有三種形式: 傳統 for 循環(C 風格) for (初始化; 條件; 迭代) { // 循環體 } 初始化:循環開始前執行一次(如 int i = 0)。 條件:每次循環前檢查,為 true 則繼續,false 則退出。

指尖人生 , 移動開發 , include , c++ , Android , ci

祝你今天愉快 - C++學習(二十) 編程練習 6-9

6.WilliamWingate從事披薩分析服務。對於每個披薩餅,他都需要記錄下列信息: 披薩餅公司的名稱,可以有多個單詞組成。 披薩餅的直徑 披薩餅的重量 請設計一個能夠存儲這些信息的結構,並編寫一個使用這種結構變量的程序。程序將請求用户輸入上述信息,然後顯示這些信息。請使用cin(或它的方法)和cout #in

指尖人生 , 移動開發 , include , c++ , Android , ci

祝你今天愉快 - C++學習(十八) 編程練習 1-5

1.編寫一個c++程序,如下述輸出示例的那樣請求並顯示信息: What is your first name? Betty Sue What is your last name? Yewe What letter grade do you deserve? B What is your age? 22 Name:Yewe,Bett

指尖人生 , 移動開發 , include , c++ , Android , ci

祝你今天愉快 - C++學習(十七)複習題

1.如何聲明下述數據? a.actor是由30個char組成的數組 b.betsie是由10o個short組成的數組 c.chuck是由13個float組成的數組 d.dipsea是由64個long double組成的數組 #includeiostream using namespace

指尖人生 , 移動開發 , include , c++ , Android , ios

祝你今天愉快 - C++學習(十六)指針的基本操作

/* 動態數組: */ #includeiostream using namespace std; int main() { // new 是在堆內存裏面的,如果不 delete ,除非程序崩潰或者程序退出,否則內存一直佔用 // new - delete // new[] - delete[] // 放在棧中 int nu

指尖人生 , 移動開發 , include , 程序退出 , Android , ios

祝你今天愉快 - C++學習(十五) new 和 delete / 堆內存 和 棧內存

/* new 與 delete C: malloc,free 用於動態申請內存 C++:new 和 delete 用於動態的申請和釋放內存 */ #includeiostream using namespace std; int sum1() { int number1 = 11; int number2 = 22; return 0;

內存問題 , 指尖人生 , 移動開發 , include , Android , ios

祝你今天愉快 - C++學習(十四) 枚舉及C++指針簡介

一、枚舉 什麼是枚舉? 枚舉(enumeration) 是一種用户自定義的數據類型,用於定義一組命名的整型常量,提高代碼的可讀性和可維護性。 普通枚舉 enum Color { RED, // 默認值為 0 GREEN, // 1 BLUE // 2 };

運算符 , 移動開發 , 野指針 , Android , ios

祝你今天愉快 - C++學習(十三) 結構體數組和聯合體

一、結構體數組 結構體(struct) 是一種用户自定義的數據類型,可以將多個不同類型的數據組合在一起。 結構體數組 就是將多個相同類型的結構體變量組織成一個數組。 示例: /* 結構體:封裝一些基本類型用於我們自定義的類型 班級管理系統:56個同學,編號,年齡,性別,成績 聊天會話 */ #includeiostream usi

指尖人生 , 移動開發 , 數據 , include , c++ , Android