C++筆記(3)——string.h相關的一些小知識

strlen()

用于得到字符數組中第一個\0前的字符的個數,格式如下:

strlen(數組);

例子:

#include <stdio.h>
#include <string.h>int main(){char str[10];gets(str);int len = strlen(str);printf("%d\n", len);return 0;
} 

輸入:

ababab

輸出:

6

strcmp()

用于比較字符串大小,比較原則是按照字典序:

strcmp(字符數組1, 字符數組2)

如果數組1長則返回正數,數組2長則返回負數,相等返回0。

#include <stdio.h>
#include <string.h> int main(){char str1[50], str2[50];gets(str1);gets(str2);int cmp = strcmp(str1, str2);if(cmp < 0) printf("str1 < str2\n");else if (cmp > 0) printf("str1 > str2\n");else printf("str1 == str2\n");return 0;
}

1472587-20190615203420107-1383924487.png

上圖中前兩行是輸入,最后一行是輸出。

strcpy()

復制字符串給另一個字符串,用法:strcpy(str1, str2)。這樣會把str2內容復制到str1

示例:

#include <stdio.h>
#include <string.h> int main(){char str1[50], str2[50];gets(str1);gets(str2);strcpy(str1, str2);puts(str1);return 0;
}

1472587-20190615203636916-1108250751.png

strcat()

拼接兩個字符串,strcat(str1, str2)

#include <stdio.h>
#include <string.h>int main(){char str1[50], str2[50];gets(str1);gets(str2);strcat(str1, str2);puts(str1);return 0;
}

1472587-20190615203903077-559016588.png

sscanf與sprintf

sscanfsprintf是專門用于處理字符串的,可以理解為“string + scanf”和“string + printf”。

用法就類似于在內存上以scanfprintf的方式將數據進行傳遞。舉個例子,sscanf(str, "%d", &n);,這就是將str中內容以%d的格式寫入到n中(可以這樣理解,scanf(screen, "%d", &n);相當于是從screen屏幕捕獲輸入并輸入到n中,從左到右,而sscanf起到的作用就差不多這樣,從str按照"%d"的格式輸入到n。sprintf則反過來,從右往左)。

比較簡單,直接上示例:

#include <stdio.h>int main() {int n;char str[100] = "123";sscanf(str, "%d", &n);printf("%d\n", n);return 0;
} 

1472587-20190616011253693-2085999357.png

#include <stdio.h>int main(){int n = 233;char str[100];sprintf(str, "%d", n);printf("%s\n", str);return 0;
}

1472587-20190616113324975-2036013757.png

復雜點的例子:

#include <stdio.h>int main(){int n;double db;char str[100] = "2048:3.14, hello", str2[100];sscanf(str, "%d:%lf, %s", &n, &db, str2);printf("n = %d, db = %.2f, str2 = %s\n", n, db, str2);return 0;
}

1472587-20190616113652320-1552562625.png

在字符串處理的時候相當有用。

轉載于:https://www.cnblogs.com/yejianying/p/cpp_notes_3.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387568.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387568.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387568.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

最近發現系統rabbitmq丟消息比較嚴重,于是想了些方案來查找原因,給將消息發送方式添加確認機制。 我們在本地模擬了wms發送打標消息的場景. 1. 有事務 2. 先發點對點隊列, 再發訂

最近發現系統rabbitmq丟消息比較嚴重&#xff0c;于是想了些方案來查找原因&#xff0c;給將消息發送方式添加確認機制。 我們在本地模擬了wms發送打標消息的場景. 1. 有事務 2. 先發點對點隊列, 再發訂閱隊列 3. 批量發送 4. 在生產環境與測試環境的RabbitMQ都進行了測試 …

uoj#388. 【UNR #3】配對樹(線段樹合并)

傳送門 先考慮一個貪心&#xff0c;對于一條邊來說&#xff0c;如果當前這個序列中在它的子樹中的元素個數為奇數個&#xff0c;那么這條邊就會被一組匹配經過&#xff0c;否則就不會 考慮反證法&#xff0c;如果在這條邊兩邊的元素個數都是偶數&#xff0c;那么至少有兩組匹配…

一道Js判斷對象是否相等面試題引發的故事

話說&#xff0c;說什么呢&#xff0c;先看下題吧還是、 function checkName(data) { if (data { name: LIMING }) { console.log("one"); 復制代碼 } else if (data { name: LIMING }) { console.log(two"); 復制代碼 } else { console.log("three&quo…

序列化

什么是序列化&#xff1f;為什么要實現序列化&#xff1f;有什么作用&#xff1f; 序列化就是把具體的對象轉化成二進制的字節碼文件進行存儲或網絡傳輸。反過來就是反序列化。 將要存儲或網絡傳輸的對象必須實現序列化才可以。 如果一個類已經實現了序列…

搭建Hive平臺

http://www.cnblogs.com/gpcuster/archive/2010/02/24/1672635.html Hive是一個基于Hadoop的數據倉庫平臺。通過hive&#xff0c;我們可以方便地進行ETL的工作。hive定義了一個類似于SQL的查詢語言&#xff1a;HQL&#xff0c;能夠將用戶編寫的QL轉化為相應的Mapreduce程序基于…

Java語言與sikuli配合

很早之前寫過一篇介紹sikuli的文章。本文簡單介紹如何在java中使用sikuli進自動化測試。 圖形腳本語言sikuli sikuli IDE可以完成常見的單擊、右擊、移動到、拖動等鼠標操作&#xff0c;java引用sikuli-script.jar同樣可以執行這些常見的鼠標操作&#xff0c;因此即可方便的編寫…

列表生成式,生成器表達式,模塊的使用

三元表達式 無論條件成立與否都要返回一個值, 用于簡化僅有一個判斷的函數(或代碼塊)遞歸 遞歸有循環調用的次數限制,調用函數時,函數相關數據要入棧,而棧區是有限的 二分查找法匿名函數 僅能在定義時使用一次,定義完了就沒了 參數沒有括號,不能有return,會自…

C#怎么用代碼模擬手機去訪問手機網站抓取數據

WebClient client new WebClient ();client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");更改user-agent為手機瀏覽器的。模擬谷歌Android&#xff1a;user-agent"Mozilla/5.0 (Linux; …

angular6 iframe應用

問題一、 iframe如何自適應屏幕高度 解決思路&#xff1a;通過設置iframe外層父元素高度等于window高度&#xff0c;再相對于父元素定位iframe元素&#xff1b;案例如下&#xff1a; 第一步: 模板文件中使用iframe // demo.component.html <div style"position: relati…

jquery下載地址:https://code.jquery.com/jquery/ 影響范圍: 版本低于1.7的jQuery過濾用戶輸入數據所使用的正則表達式存在缺陷,可能導致LOCA

jquery下載地址&#xff1a;https://code.jquery.com/jquery/ 影響范圍&#xff1a; 版本低于1.7的jQuery過濾用戶輸入數據所使用的正則表達式存在缺陷&#xff0c;可能導致LOCATION.HASH跨站漏洞 已測試成功版本&#xff1a; jquery-1.6.min.js&#xff0c;jquery-1.6.1.min…

Myeclipse常用快捷鍵

2019獨角獸企業重金招聘Python工程師標準>>> Ctrl1 快速修復 CtrlD: 刪除當前行 CtrlQ 定位到最后編輯的地方 CtrlL 定位在某行 CtrlO 快速顯示 OutLine CtrlT 快速顯示當前類的繼承結構 CtrlW 關閉當前Editer CtrlK 快速定位到下一個 CtrlE 快速顯示當前Edi…

數字三角形

問題描述 &#xff08;圖&#xff13;.&#xff11;&#xff0d;&#xff11;&#xff09;示出了一個數字三角形。 請編一個程序計算從頂至底的某處的一條路徑&#xff0c;使該路徑所經過的數字的總和最大。●每一步可沿左斜線向下或右斜線向下走&#xff1b;●1&#xff1c;三…

版本低于1.7的jQuery過濾用戶輸入數據所使用的正則表達式存在缺陷

jquery下載地址&#xff1a;https://code.jquery.com/jquery/ 影響范圍&#xff1a; 版本低于1.7的jQuery過濾用戶輸入數據所使用的正則表達式存在缺陷&#xff0c;可能導致LOCATION.HASH跨站漏洞 已測試成功版本&#xff1a; jquery-1.6.min.js&#xff0c;jquery-1.6.1.min.…

RabbitMQ學習總結(6)——消息的路由分發機制詳解

2019獨角獸企業重金招聘Python工程師標準>>> 一、Routing(路由) (using the Java client)在前面的學習中&#xff0c;構建了一個簡單的日志記錄系統&#xff0c;能夠廣播所有的日志給多個接收者&#xff0c;在該部分學習中&#xff0c;將添加一個新的特點&#xff0…

Kaggle爆文:一個框架解決幾乎所有機器學習問題

上周一個叫 Abhishek Thakur 的數據科學家&#xff0c;在他的 Linkedin 發表了一篇文章 Approaching (Almost) Any Machine Learning Problem&#xff0c;介紹他建立的一個自動的機器學習框架&#xff0c;幾乎可以解決任何機器學習問題&#xff0c;項目很快也會發布出來。 這篇…

C# HttpWebRequest GET HTTP HTTPS 請求

這個需求來自于我最近練手的一個項目&#xff0c;在項目中我需要將一些自己發表的和收藏整理的網文集中到一個地方存放&#xff0c;如果全部采用手工操作工作量大而且繁瑣&#xff0c;因此周公決定利用C#來實現。在很多地方都需要驗證用戶身份才可以進行下一步操作&#xff0c;…

HttpStatusCode

https://docs.microsoft.com/en-us/dotnet/api/system.net.httpstatuscode?viewnetframework-4.7.2 422 UnprocessableEntity What HTTP status response code should I use if the request is missing a required parameter? Status 422 seems most appropiate based on the…

numpy 和tensorflow 中的乘法

矩陣乘法&#xff1a;tf.matmul() np.dot() &#xff0c; 逐元素乘法&#xff1a;tf.multiply() np.multiply()轉載于:https://www.cnblogs.com/lizhiqing/p/10307760.html

啟用了不安全的HTTP方法

安全風險&#xff1a;可能會在Web 服務器上上載、修改或刪除Web 頁面、腳本和文件。可能原因&#xff1a;Web 服務器或應用程序服務器是以不安全的方式配置的。修訂建議&#xff1a;如果服務器不需要支持WebDAV&#xff0c;請務必禁用它&#xff0c;或禁止不必要的HTTP 方法。方…

Mysql學習總結(4)——MySql基礎知識、存儲引擎與常用數據類型

2019獨角獸企業重金招聘Python工程師標準>>> 1、基礎知識 1.1、數據庫概述 簡單地說&#xff1a;數據庫&#xff08;Database或DB&#xff09;是存儲、管理數據的容器&#xff1b;嚴格地說&#xff1a;數據庫是“按照某種數據結構對數據進行組織、存儲和管理的容器”…